所有的字符串,都是以\0结尾的
只能在数组定义并初始化的时候:char c[6] = "China";
不能用赋值语句将一个字符串常量或字符数组直接赋给另一个字符数组
可以利用二维字符数组存储多个字符串
输入缓冲区
输入的时候会有一个指针标定我们读取到哪里(缓冲区指针)
用cin输入数据
连续输入的情况 while(cin>>i)
#include<iostream>
using namespace std;
int main()
{
char a[10][10];
int n = 0;
cin >> n;
cin.get(); //添加一条语句,“拿走”上一句话指针停止在的换行符
for(int i = 0; i < n; i++)
cin.getline(a[i],10);
for(int i = 0; i < n; i++)
cout<<a[i]<<endl;
return 0;
}
问题
思路
#include<iostream>
using namespace std;
int main()
{
char str[200];
while(cin.getline(str,200))
{
for(int i = 0; str[i] !=‘/0‘;i++)
{
if(str[i] == ‘Z‘)
{
str[i] = ‘A‘;
continue;
}
if(str[i] == ‘z‘)
{
str[i] = ‘a‘;
continue;
}
if(str[i] == ‘ ‘)
continue;
str[i]++;
}
cout<<str<<endl;
}
return 0;
}
问题
要求
思路
定义: char str1[40],str2[40]; cin.getline(str1,20);cin.getline(str2,20);
计算长度: for(len1 = 0; str1[len1]!=‘\0‘;len1++);for(len2 = 0; str2[len2]!=‘\0‘;len2++);
拼接:第一个串的下标指向最后一个元素之后,第二个串的下标指向第一个元素
for(len2 = 0; str1[len2]!=‘\0‘;len2++);
? str1[len1++] = str2[len2];
? str1[len1]=‘/0‘; //加上\0就变成了一个字符串
#include<iostream>
using namespace std;
int main()
{
int len1,len2;char str1[40],str2[40];
cin.getline(str1,20);cin.getline(str2,20);
for(len1=0;str1[len1]!=‘\0‘;len1++);
for(len2=0;str2[len2]!=‘\0‘;len2++);
if(len1 >= len2)
{
for(len2 = 0; str2[len2]!=‘\0‘;len2++)
str1[len1++] = str2[len2];
str1[len1] = ‘\0‘;
}
else
{
for(len1 = 0; str2[len1]!=‘\0‘;len1++)
str2[len2++] = str1[len1];
str2[len2] = ‘\0‘;
}
cout<<str1<<endl;
cout<<str2<<endl;
return 0;
}
#include<iostream>
using namespace std;
int main()
{
char str[80];
int num = 0, flag = 0;
cin.getline(str,80);
for(int i = 0; str[i]!=‘\0‘;i++)
{
if(str[i] == ‘ ‘)
flag = 0;
else if(flag == 0)
{
flag = 1;
num++;
}
}
cout<<"字符串中有"<<num<<"个单词"<<endl;
return 0;
}
Coursera课程笔记----计算导论与C语言基础----Week 11
原文:https://www.cnblogs.com/maimai-d/p/12813622.html