C++字符串函数详解
C++ 库提供了许多可以用来处理 C 字符串的函数。这些函数的功能包括:确定字符串的长度、连接两个字符串、比较两个字符串、搜索在另一个字符串内出现的一个字符串等。必须包含 cstring 头文件才能使用这些函数。
strlen 函数
strlen 函数将接收一个 C 字符串作为实参,并返回字符串的长度。这是直到(但不包括)null 终止符的字符数。例如,来看以下代码段:
char str[] = "Hello";
int length = strlen(str);
在上述代码示例中,变量 length 存储的数字值为 5。
字符串的长度不应与数组的大小混淆。请记住,传递给 strlen 的唯一信息是 C 字符串的开头。它并不知道数组在哪里结束,因此它会查找指示字符串结尾的 null 终止符。
传递 C 字符串实参
因为 C 字符串是指向 char 的指针,所以 C 字符串处理函数将釆用 char 数组或指向 char 的指针作为形参。C 字符串可以按它能釆取的以下 3 种形式中的任何一种传递给函数:
- 字符串常数。
- 存储 C 字符串的数组的名称。
- 保存 C 字符串地址的指针变量。
strcat 函数
C 字符串处理函数的另一个例子是 strcat。strcat 函数釆用两个字符串作为形参并连接它们,返回由第一个字符串和第二个字符串的所有字符组成的单个字符串,示例如下:
const int SIZE = 13; char string1[SIZE] = "Hello "; char string2 [ ] = "World!"; cout << string1 << endl; cout << string2 << endl; strcat(string1, string2); cout << string1 << endl;
以上语句将产生以下输出结果:
Hello
World!
Hello World!
strcat 函数可以将 string2 的内容复制到 string1 的末尾。在本示例中,string1 在调用 strcat 之前包含有字符串 "Hello"。调用之后,它将包含字符串 "Hello World!"。图 1 显示了函数调用之前与之后两个数组的内容。
发表评论