亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> C语言

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

什么是字符串?

字符串是一个字符序列。 C++ 字符串是 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’放在字符串的末尾。

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,如果 string1string2 则返回大于 0。

示例:

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

#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. 将字符串 name1 复制到字符串 name3 中。
  10. 在控制台上打印字符串 name1 的值以及一些文本。它应该打印 Guru99。
  11. 将字符串 name2 连接到字符串 name1 的末尾。 name1 的值现在是 Guru99John。
  12. 在控制台上打印字符串 name1 的值以及一些文本。它应该打印 Guru99John
  13. 确定名为name1的字符串的长度,并将length的值赋给变量len。
  14. 在控制台上打印 len 变量的值以及其他一些文本。
  15. 如果程序运行良好,main() 函数应该返回一个值。
  16. main() 函数主体的结尾。

总结


C语言

  1. Java 字符串
  2. Java 枚举字符串
  3. C++ 变量和类型:int、double、char、string、bool
  4. C++ 中的数组 |声明 |初始化 |指向数组示例的指针
  5. C++ do...while 循环与示例
  6. 带有示例的 C++ 指针
  7. C++ Char 数据类型及示例
  8. 带有示例的 C++ 运算符重载
  9. 带有程序示例的 C++ 函数
  10. C 中的字符串:如何声明变量、初始化、打印、示例
  11. Java String indexOf() 方法与子字符串和示例
  12. 如何在 Java 中将字符转换为字符串(示例)