美文网首页
C++<第十九篇>:字符串

C++<第十九篇>:字符串

作者: NoBugException | 来源:发表于2022-01-21 20:32 被阅读0次

    C++ 中的字符串有两种形式:(1)C风格的字符串 (2)C++引入的 string 类型的字符串。

    (1)C风格的字符串

    C 风格的字符串起源于 C 语言,并在 C++ 中继续得到支持。字符串实际上是使用 null 字符 \0 终止的一维字符数组。因此,一个以 null 结尾的字符串,包含了组成字符串的字符。

    C风格的字符串的声明和赋值:

    char name[25] = { 'z','h','a','n','g','s','a','n'};
    

    或者

    char name[] = "zhangsan";
    

    字符串结尾存在‘\0’的结束符,所以也可以写成:

    char name[] = "zhangsan\0";
    

    操作C风格的字符串往往和 #include <string> 一起使用,在标准库string中,一些函数比较使用,比如:

    获取字符数组的长度:

    strlen(name)
    

    比较两个字符串:

    strcmp(name1, name2)
    

    将name2拷贝到name1中(将name1直接覆盖,name1原有字符串被覆盖):

    strcpy_s(name1, strlen(name2) + 1, name2)
    

    将两个字符串连接起来(将name2连接到name1的结尾):

    strcat_s(name1, strlen(name1) + strlen(name2) + 1, name2)
    

    返回值是指针,指向字符数组,字符‘h’第一次出现的地方:

    char* np = strchr(name, 'h');
    cout << *np << endl;
    

    *np的值就是h。

    (1)C++中的string

    C++ 标准库提供了 string 类型,string 同样提供了一些能力,比如:

    获取name的长度:

    name.size();
    

    name.length();
    

    两字符串连接:

    name1 = name1 + name2;
    

    将name2复制到name1

    name1 = name2;
    

    字符串的比较:

    int result = name1.compare(name2);
    

    如果result > 0,那么name1 > name2;
    如果result < 0,那么name1 < name2;
    如果result = 0,那么name1 = name2;

    字符串追加,将字符串“aa”追加到name的结尾:

    name.append("aa");
    

    string库中还有其它功能,这里就不举例了。

    [本章完...]

    相关文章

      网友评论

          本文标题:C++<第十九篇>:字符串

          本文链接:https://www.haomeiwen.com/subject/ahxyhrtx.html