C 中的空终止字符串
这篇小文章将讨论字符串在C语言中的使用。 C语言中的字符串是使用字符数组构成的。
C 中的字符串
实际上,字符串是一个一维字符数组,以空字符 \0
结束。 组成字符串的字符后跟一个 null 以形成一个以 null 结尾的字符串。
下面的代码片段创建了一个以空字符结尾的字符串。 为了将空字符放在末尾,我们需要使字符串的长度比字符串的原始字数多一个字符。
char test[5] = {'T', 'e', 's', 't', '\0'};
这是C中初始化字符串的一种方式,注意字符串大小设置为5,但字符串的字符数为4,第5个字符为空字符\0。
您还可以按照以下代码段初始化字符串。
char test[] = "Test";
因此,将空字符放在字符串的末尾不是强制性的。 C 编译器会自动为我们做这些。
当我们打印两个字符串时,不会打印终止空字符。 让我们看看下面的例子。
#include <stdio.h>
int main () {
char test[5] = {'T', 'e', 's', 't', '\0'};
char test2[] = "Test";
printf("Test message: %s\n", test );
printf("Test message 2: %s\n", test2 );
}
我们在上面的代码段中创建了两个字符串,并用相同的数据对它们进行了初始化。 我们在第一个字符的末尾明确放置了一个空字符。
同时,它没有放在第二个中。 当我们打印这些字符串时,两者将具有相同的数据。
输出结果:
C 中的 C 字符串库函数
C 中的许多函数都支持用于以 null 结尾的字符串。 string 类中提供了许多函数; 一些如下。
序号 | 函数 | 说明 |
---|---|---|
1 |
strcpy(str1, str2); |
它将 str1 复制到 str2。 |
2 |
strcat(str1, str2); |
它连接 str2 和 str1,使得 str1 后跟 str2 |
3 |
strlen(str1); |
它告诉 str1 的长度。 |
4 |
strcmp(str1, str2); |
它有三个结果: 1 如果 str1 和 str2 相等; 如果 str1 < str2 则为负; 如果 str1 > str2 则为正 |
5 |
strchr(str1, c); |
返回对 str1 中第一次出现的 c 的引用 |
6 |
strstr(str1, str2); |
返回对 str1 中第一次出现的 str2 的引用 |
下面的示例使用其中一些函数来演示 C 中字符串的使用。
#include <stdio.h>
#include <string.h>
int main () {
char mystr1[12] = "First";
char mystr2[12] = "Second";
char mystr3[12];
int length ;
/* copy the first string into the third */
strcpy(mystr3, mystr1);
printf("strcpy( mystr3, mystr1) : %s\n", mystr3 );
/* concatenates first and second */
strcat( mystr1, mystr2);
printf("strcat( mystr1, mystr2): %s\n", mystr1 );
/* length of the first string after concatenation */
length = strlen(mystr1);
printf("strlen(mystr1) : %d\n", length );
return 0;
}
输出结果:
相关文章
在 C 语言中使用 typedef enum
发布时间:2023/05/07 浏览次数:181 分类:C语言
-
本文介绍了如何在 C 语言中使用 typedef enum。使用 enum 在 C 语言中定义命名整数常量 enum 关键字定义了一种叫做枚举的特殊类型。
C 语言中的 extern 关键字
发布时间:2023/05/07 浏览次数:114 分类:C语言
-
本文介绍了如何在 C 语言中使用 extern 关键字。C 语言中使用 extern 关键字来声明一个在其他文件中定义的变量
C 语言中的 #ifndef
发布时间:2023/05/07 浏览次数:186 分类:C语言
-
本文介绍了如何在 C 语言中使用 ifndef。在 C 语言中使用 ifndef 保护头文件不被多次包含 C 语言中的头文件用于定义同名源文件中实现的函数的接口。