字符串

gao79138 / 2023-05-08 / 原文

字符串


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的使用问题