字符串
1. 字符数组的输入输出问题
1. 对字符数组进行读入,我们可以进行如下操作:
1. scanf("%s",s);
2. cin >> s;
上述的方法,读到空格或回车就会停止读入。
2. 如果我们想读取一行的话(包括空格),我们可以使用如下操作:
1. 如果变量类型为string的话,我们可以使用:getline(cin,s); 来读取一行,并存到string类型变量s中。
2. 如果为字符数组的话 char s[100],我们可以使用cin.getline(s,100); 此处的100代表读取的最多字符为多少。
3. 对于字符数组,我们还可以使用fgets(s,100,stdin);此处的100代表读取的最多字符为多少。注意fgets不会删除行末的回车字符
3. 对字符数组进行输出,我们可以进行如下操作:
1. printf("%s",s);
2. puts(s); 注意:puts();输出字符串时,会自带回车。
3. cout << s << endl;
输出字符串时,遇到空格或者回车不会停止,遇到'\0'时停止
2. 关于标准库string需要注意的问题
1. 如果我们要使用string相关的变量以及库函数的话,我们需要引入#include <string>
2. 我们可以这样初始化:string s4(10,'c')那么就代表字符串s4的值为"cccccccccc"
3. 对string的输入输出操作仅需cin、cout正常输入出即可。
4. scanf/printf不可以直接对string进行操作。If printf 想输出string,我们需要使用方法c_str() 具体来讲: printf("%s\n",s1.c_str())
5. 输出还可以用:puts(s1.c_str());
6. s1.empty() 代表判断s1是否为空。0不为空,1为空。
7. s1.size() 代表求s1的长度是多少。时间复杂度为O(1)。相反对于strlen()来说,时间复杂度为O(n)。
8. string进行比较,直接运算符即可。
9. string可以通过使用"+"来进行字符串的拼接。在拼接时,需要确保+两端的内容至少有一个为string。
10. string在做拼接时,会将另一侧的字符或字符串均转换为string之后,在做拼接。
11. string对象可以当做字符数组来进行处理。
12. 遍历string对象,我们可以这么做:
for(char c: s){
cout << c << endl;
}
3. 关于sstream的使用问题