C++ 字符串函数:strcpy()、strcat()、strlen()、strcmp() 示例

什么是字符串?

字符串是字符的序列。 C++ string 是 std::string 类的对象。字符是存储的字节序列,允许访问单个字符字节。

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

声明字符串

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

  • C 风格字符串
  • 字符串类类型

C 风格字符串

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

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

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

上述声明创建了一个字符串,组成单词 John。该单词有 4 个字符,但字符串的大小为 5。额外的空间可用于容纳空字符。

利用数组初始化规则,我们可以将上述语句写成如下形式:

char name[] = "John";

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

标准::字符串

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

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

#include<string>

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

string name = "John";

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

访问字符串值

In 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. 声明一个字符串并将其命名为 name。该字符串将存储值 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. 声明一个字符串并赋予其名称 name。该字符串将存储值 Guru99。
  6. 在控制台上打印字符串名称的值以及一些文本。
  7. 如果程序运行正常,main() 函数应该返回一个值。
  8. main() 函数体结束。

字符串函数 C++

您可能经常想要操作字符串。 C++ 提供了各种可用于此目的的函数。这些函数在 CString 类中定义,因此,我们必须将其包含在代码中才能使用这些函数。让我们讨论一些:

字符串()

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

语法:

strcpy(string1, string2);

函数的两个参数string1和string2都是字符串。该函数会将字符串string2复制到string1中。

字符串()

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

语法:

strcat(string1, string2);

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

字符串()

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

语法:

strnlen(string1)

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

strcmp()

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

语法:

strcmp(string1, string2);

如果字符串 string0 和 string1 相似,则上述函数将返回 2;如果字符串 string0字符串1。

计费示例:

下面的例子演示了如何使用上述字符串函数:

#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;
}

输出:

字符串函数 C++

以下是代码截图:

字符串函数 C++

代码说明:

  1. 在我们的代码中包含 iostream 头文件。它将允许我们从控制台读取和写入。
  2. 在我们的代码中包含标准 CString 类。
  3. 包括 std 命名空间,以便使用其类和函数而无需调用它。
  4. 调用 main() 函数,程序逻辑应添加到该函数中。{ 标记 main() 函数主体的开始。
  5. 声明一个由 10 个字符组成的字符串,并将其命名为 name1。该字符串将存储值 Guru99。
  6. 声明一个包含 10 个字符的字符串,并将其命名为 name2。该字符串将存储值 John。
  7. 声明一个由 10 个字符组成的字符串并将其命名为 name3。
  8. 声明 整型变量 名为 len。
  9. 将字符串 name1 复制到字符串 name3 中。
  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() 函数比较两个字符串。