在C++中字符串可以用字符数组和string两种方式来表示
字符数组
char s[100];
// 用scanf和cin读入字符数组都是读至空格或回车就会停下
scanf("%s", s); // 注意scanf读入字符串时不需要加取地址符
cin >> s;
// 用fgets和cin.getline可以读入一整行数据来忽略空格,注意读入的字符串结尾必为/0,所以长度设置一般都要尽量大些,同时fgets是会将回车读入的
fgets(s, 101, stdin); // 第一个参数是要读入的字符串,第二个是读入字符的长度,第三个是固定参数
cin.getline(s, 101); // 第一个参数为要读入的字符串,第二个是读入字符的长度
// 用printf、puts、cout都可以输出字符数组类型的字符串
printf("%s\n", s);
puts(s); // puts自动包括换行符
cout << s << endl;
字符串string
string s;
// string不能用scanf读入但可以用cin读入,同时也可以用getline忽略空格读入
cin >> s;
getline(cin, s);
// 用printf、puts、cout都可以输出string类型字符串
cout << s << endl;
puts(s);
printf("%s", s.c_str()); // 注意用printf输出一定要用.c_str()将其转化为字符数组
读入单个字符
在读入单个字符时,如果我们用scanf(“%c”)来读入是不会忽略空格以及回车的,所以很有可能读不到想要的数据,所以为了保险起见,我们在读入单个字符的时候也可以选择用字符串方式来读入
scanf与cin的返回值
scanf
遇到EOF时的返回值为-1
cin
遇到EOF时的返回值为0
太有帮助了,感谢!!
对于初学c++的我,起到了很大的作用,谢谢
一起加油!