Strings
优质
小牛编辑
131浏览
2023-12-01
字符串实际上是由null字符'\ 0'终止的一维字符数组。 因此,以null结尾的字符串包含组成字符串后跟null 。
以下声明和初始化创建一个由单词“Hello”组成的字符串。 要将空字符保存在数组的末尾,包含字符串的字符数组的大小比单词“Hello”中的字符数多一个。
char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};
如果你遵循数组初始化的规则,那么你可以写如下语句 -
char greeting[] = "Hello";
以下是C/C ++中上面定义的字符串的内存表示 -
实际上,您不会将null字符放在字符串常量的末尾。 初始化数组时,C编译器会自动将'\ 0'放在字符串的末尾。 让我们尝试打印上面提到的字符串 -
#include <stdio.h>
int main () {
char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};
printf("Greeting message: %s\n", greeting );
return 0;
}
编译并执行上述代码时,会产生以下结果 -
Greeting message: Hello
C支持各种操作以null结尾的字符串的函数 -
Sr.No. | 功能与目的 |
---|---|
1 | strcpy(s1, s2); 将字符串s2复制到字符串s1中。 |
2 | strcat(s1, s2); 将字符串s2连接到字符串s1的末尾。 |
3 | strlen(s1); 返回字符串s1的长度。 |
4 | strcmp(s1, s2); 如果s1和s2相同则返回0; 如果s1 如果s1> s2,则大于0。 |
5 | strchr(s1, ch); 返回指向字符串s1中第一个出现的字符ch的指针。 |
6 | strstr(s1, s2); 返回指向字符串s1中第一次出现的字符串s2的指针。 |
以下示例使用了一些上述功能 -
#include <stdio.h>
#include <string.h>
int main () {
char str1[12] = "Hello";
char str2[12] = "World";
char str3[12];
int len ;
/* copy str1 into str3 */
strcpy(str3, str1);
printf("strcpy( str3, str1) : %s\n", str3 );
/* concatenates str1 and str2 */
strcat( str1, str2);
printf("strcat( str1, str2): %s\n", str1 );
/* total lenghth of str1 after concatenation */
len = strlen(str1);
printf("strlen(str1) : %d\n", len );
return 0;
}
编译并执行上述代码时,会产生以下结果 -
strcpy( str3, str1) : Hello
strcat( str1, str2): HelloWorld
strlen(str1) : 10