发布于:2021-01-27 15:31:38
0
134
0
什么是字符串?
字符串是一个字符序列。C++字符串是STD::string类的对象。字符是允许访问单个字符字节的字节序列。
C++字符串动态分配内存。如果需要,可以在运行时为字符串分配更多内存。因为没有内存预分配,所以没有内存浪费。我们可以对字符串执行各种操作,包括比较、串联、转换等。
声明字符串
C++支持两种类型的字符串声明:
C样式字符串
字符串类类型
C样式字符串
这种类型的字符串声明是在C编程语言中引入的。C++继续支持它。它只是一个以空字符( 0)结尾的一维字符数组。以null结尾的字符串包含组成字符串的字符,然后后跟null。
考虑下面给出的字符串声明:
char name[5] = {'J', 'o', 'h', 'n', ''};
上面的声明创建了一个字符串,形成单词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', '' };
cout << "String value is: ";
cout << name << endl;
return 0;
}
输出:
以下是代码截图:
代码说明:
在我们的代码中包含iostream头文件。它将允许我们读取和写入控制台。
包括std名称空间,以便在不调用它的情况下使用它的类和函数。
调用main()函数,其中应添加程序逻辑。{标记main()函数主体的开始。
声明一个字符串并为其命名。字符串将存储值John。多余的空间将存储空字符。
在控制台上打印一些文本。
在控制台上打印名为name的字符串的值。
如果程序运行正常,main()函数应该返回一个值。
main()函数主体的结尾。
这里是使用C++标准字符串类的另一个例子:
#include <iostream>
#include <string>
using namespace std;
int main() {
string name = "Guru99";
cout << "The name is : " << name << endl;
return 0;
}
输出:
以下是代码截图:
代码说明:
在我们的代码中包含iostream头文件。它将允许我们读取和写入控制台。
在我们的代码中包含标准字符串类。
包括std名称空间,以便在不调用它的情况下使用它的类和函数。
调用main()函数,其中应添加程序逻辑。{标记main()函数主体的开始。
声明一个字符串并为其命名。字符串将存储Guru99的值。
将字符串名称的值与控制台上的某些文本一起打印。
如果程序运行正常,main()函数应该返回一个值。
main()函数主体的结尾。
您经常需要操纵字符串。C++提供了一个广泛的函数,您可以为此使用。这些函数是在CString类中定义的,因此,为了使用这些函数,我们必须在代码中包含它。让我们讨论一下:
这是字符串复制函数。它将一个字符串复制到另一个字符串中。
语法:
strcpy(string1, string2);
函数的两个参数string1和string2是字符串。函数将把字符串string1复制到字符串1中。
这是字符串连接函数。它连接字符串。
语法:
strcat(string1, string2);
函数的两个参数string1和string2是要连接的字符串。上面的函数将字符串string2连接到字符串string1的末尾。
这是字符串长度函数。它返回作为参数传递给它的字符串的长度。
语法:
strnlen(string1)
参数string1是要确定其长度的字符串的名称。上面的函数将返回字符串string1的长度。
这是字符串比较函数。它用于字符串比较。
语法:
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;
}
输出:
以下是代码截图:
代码说明:
在我们的代码中包含iostream头文件。它将允许我们读取和写入控制台。
在我们的代码中包含标准CString类。
包括std名称空间,以便在不调用它的情况下使用它的类和函数。
调用main()函数,其中应添加程序逻辑。{标记main()函数主体的开始。
声明一个由10个字符组成的字符串,并将其命名为name1。字符串将存储Guru99的值。
声明一个由10个字符组成的字符串,并将其命名为name2。字符串将存储值John。
声明一个由10个字符组成的字符串,并将其命名为name3。
声明一个名为len的整数变量。
将字符串名称1复制到字符串名称3中。
在控制台上打印字符串name1的值和一些文本。它应该打印Guru99。
将字符串name2连接到字符串name1的末尾。name1的值现在是Guru99John。
在控制台上打印字符串name1的值和一些文本。它应该打印Guru99John
来确定名为name1的字符串的长度,并将长度值赋给变量len。
在控制台上打印len变量的值和一些其他文本。
如果程序运行正常,main()函数应该返回一个值。
main()函数主体的结尾。
字符串是一个字符序列。
字符串属于C++中的标准字符串类。
我们可以使用C样式字符串或标准字符串类声明字符串。
strcpy()函数将一个字符串复制到另一个字符串中。
strcat()函数连接两个函数。
strlen()函数返回函数的长度。
strcmp()函数比较两个字符串。
作者介绍