C++字符串:StrucYe()、Struts()、StruLe()、Strucp()实例

什么是字符串?

字符串是一个字符序列。C++字符串是STD::string类的对象。字符是允许访问单个字符字节的字节序列。

C++字符串动态分配内存。如果需要,可以在运行时为字符串分配更多内存。因为没有内存预分配,所以没有内存浪费。我们可以对字符串执行各种操作,包括比较、串联、转换等。

声明字符串

C++支持两种类型的字符串声明:

  • C样式字符串

  • 字符串类类型

C样式字符串

这种类型的字符串声明是在C编程语言中引入的。C++继续支持它。它只是一个以空字符(\ 0)结尾的一维字符数组。以null结尾的字符串包含组成字符串的字符,然后后跟null。

考虑下面给出的字符串声明:

char name[5] = {'J', 'o', 'h', 'n', '\0'};

上面的声明创建了一个字符串,形成单词John。单词有4个字符,但字符串的大小为5。额外的空间允许容纳空字符。

使用数组初始化规则,我们可以编写如下语句:

char name[] = "John";

请注意,您不必将空字符放在字符串常量的末尾。在初始化数组时,C++编译器将自动在字符串的末尾放置“0”。

std :: string

标准C++库提供支持各种字符串操作的字符串类。它被写成std :: string。

要使用此类,必须首先使用#include预处理器将其包含到工作区中,如下所示:

#include <string>

接下来,我们可以使用string关键字声明字符串。例如:

string name = "John";

上面的语句将创建一个名为name的字符串来保存值John。

访问字符串值

在C++中,我们可以使用字符串名称访问字符串值。例如:

#include <iostream>
using namespace std;
int main() {
char name[5] = { 'J', 'o', 'h', 'n', '\0' };
cout << "String value is: ";
cout << name << endl;
return 0;
}

输出:

 

以下是代码截图:

 

代码说明:

  1. 在我们的代码中包含iostream头文件。它将允许我们读取和写入控制台。

  2. 包括std名称空间,以便在不调用它的情况下使用它的类和函数。

  3. 调用main()函数,其中应添加程序逻辑。{标记main()函数主体的开始。

  4. 声明一个字符串并为其命名。字符串将存储值John。多余的空间将存储空字符。

  5. 在控制台上打印一些文本。

  6. 在控制台上打印名为name的字符串的值。

  7. 如果程序运行正常,main()函数应该返回一个值。

  8. main()函数主体的结尾。

这里是使用C++标准字符串类的另一个例子:

    #include <iostream>
    #include <string>
    using namespace std;
    int main() {

    string name = "Guru99";

    cout << "The name is : " << name << endl;

    return 0;
    }

    输出:

     

    以下是代码截图:

     

    代码说明:

  1. 在我们的代码中包含iostream头文件。它将允许我们读取和写入控制台。

  2. 在我们的代码中包含标准字符串类。

  3. 包括std名称空间,以便在不调用它的情况下使用它的类和函数。

  4. 调用main()函数,其中应添加程序逻辑。{标记main()函数主体的开始。

  5. 声明一个字符串并为其命名。字符串将存储Guru99的值。

  6. 将字符串名称的值与控制台上的某些文本一起打印。

  7. 如果程序运行正常,main()函数应该返回一个值。

  8. main()函数主体的结尾。

    字符串函数:

    您经常需要操纵字符串。C++提供了一个广泛的函数,您可以为此使用。这些函数是在CString类中定义的,因此,为了使用这些函数,我们必须在代码中包含它。让我们讨论一下:

    strcpy()

    这是字符串复制函数。它将一个字符串复制到另一个字符串中。

    语法:

    strcpy(string1, string2);

    函数的两个参数string1和string2是字符串。函数将把字符串string1复制到字符串1中。

    strcat()

    这是字符串连接函数。它连接字符串。

    语法:

    strcat(string1, string2);

    函数的两个参数string1和string2是要连接的字符串。上面的函数将字符串string2连接到字符串string1的末尾。

    strlen()

    这是字符串长度函数。它返回作为参数传递给它的字符串的长度。

    语法:

    strnlen(string1)

    参数string1是要确定其长度的字符串的名称。上面的函数将返回字符串string1的长度。

    strcmp()

    这是字符串比较函数。它用于字符串比较。

    语法:

    strcmp(string1, string2);

    如果字符串string1和string2相似,则上述函数将返回0;如果string1

    示例:

    以下示例演示如何使用上述字符串函数:

    #include <iostream>
    #include <cstring>
    using namespace std;
    int main() {

    char name1[10] = "Guru99";
    char name2[10] = "John";
    char name3[10];

    int  len;
    strcpy(name3, name1);
    cout << "strcpy( name3, name1) : " << name3 << endl;

    strcat(name1, name2);
    cout << "strcat( name1, name2): " << name1 << endl;

    len = strlen(name1);
    cout << "strlen(name1) : " << len << endl;
    return 0;
    }

    输出:

     

    以下是代码截图:

     

    代码说明:

  1. 在我们的代码中包含iostream头文件。它将允许我们读取和写入控制台。

  2. 在我们的代码中包含标准CString类。

  3. 包括std名称空间,以便在不调用它的情况下使用它的类和函数。

  4. 调用main()函数,其中应添加程序逻辑。{标记main()函数主体的开始。

  5. 声明一个由10个字符组成的字符串,并将其命名为name1。字符串将存储Guru99的值。

  6. 声明一个由10个字符组成的字符串,并将其命名为name2。字符串将存储值John。

  7. 声明一个由10个字符组成的字符串,并将其命名为name3。

  8. 声明一个名为len的整数变量。

  9. 将字符串名称1复制到字符串名称3中。

  10. 在控制台上打印字符串name1的值和一些文本。它应该打印Guru99。

  11. 将字符串name2连接到字符串name1的末尾。name1的值现在是Guru99John。

  12. 在控制台上打印字符串name1的值和一些文本。它应该打印Guru99John

  13. 来确定名为name1的字符串的长度,并将长度值赋给变量len。

  14. 在控制台上打印len变量的值和一些其他文本。

  15. 如果程序运行正常,main()函数应该返回一个值。

  16. main()函数主体的结尾。

    摘要

  • 字符串是一个字符序列。

  • 字符串属于C++中的标准字符串类。

  • 我们可以使用C样式字符串或标准字符串类声明字符串。

  • strcpy()函数将一个字符串复制到另一个字符串中。

  • strcat()函数连接两个函数。

  • strlen()函数返回函数的长度。

  • strcmp()函数比较两个字符串。

作者介绍

用微信扫一扫

收藏