下面我来详细讲解 C 字符串的完整使用攻略。
什么是 C 字符串
C 字符串是指以 null 字符('\0')结尾的字符数组,也就是我们常说的以 '\0' 结尾的字符序列。在 C 语言中,字符串是常用的一种数据类型,其可以用字符数组的形式来表示,例如:
char str[] = "hello world";
在上面的代码中,我们定义了一个字符数组 str,其包含了一个字符串 "hello world"。需要注意的是,在字符串最后面我们加了一个 '\0',这样才符合 C 字符串的定义。
字符串的初始化
我们可以通过不同的方式来初始化一个 C 字符串。
使用字符数组
我们可以使用字符数组来初始化一个 C 字符串,例如:
char str[10] = {'h', 'e', 'l', 'l', 'o', '\0'};
在上面的代码中,我们声明了一个字符数组 str,其包含了一个字符串 "hello"。需要注意的是,我们在最后加了一个 '\0',这样才符合 C 字符串的定义。
使用字符串常量
我们可以直接使用字符串常量来初始化一个 C 字符串,例如:
char str[] = "hello";
在上面的代码中,我们定义了一个字符数组 str,其包含了一个字符串 "hello"。需要注意的是,编译器会在字符串末尾自动加上一个 '\0',这样才符合 C 字符串的定义。
字符串的操作
C 字符串支持很多操作,例如字符串的比较、拼接、查找、复制等等。
字符串比较
我们可以使用 strcmp() 函数来比较两个字符串是否相等,例如:
#include <string.h>
#include <stdio.h>
int main() {
char str1[] = "hello";
char str2[] = "world";
char str3[] = "hello";
int cmp1 = strcmp(str1, str2);
int cmp2 = strcmp(str1, str3);
printf("%d\n", cmp1); // 输出 -15
printf("%d\n", cmp2); // 输出 0
return 0;
}
在上面的代码中,我们定义了三个字符数组 str1、str2 和 str3,分别包含了字符串 "hello"、"world" 和 "hello"。我们使用 strcmp() 函数来比较这些字符串,其中 cmp1 的值为 -15,cmp2 的值为 0。需要注意的是,strcmp() 函数会比较两个字符串的字典序,返回值为 0 表示两个字符串相等,返回值小于 0 表示第一个字符串比第二个字符串小,返回值大于 0 则相反。
字符串拼接
我们可以使用 strcat() 函数来将两个字符串拼接在一起,例如:
#include <string.h>
#include <stdio.h>
int main() {
char str1[10] = "hello";
char str2[] = "world";
strcat(str1, str2);
printf("%s\n", str1); // 输出 helloworld
return 0;
}
在上面的代码中,我们定义了两个字符数组 str1 和 str2,其包含了字符串 "hello" 和 "world"。我们使用 strcat() 函数将它们拼接在一起,结果为 "helloworld"。
字符串查找
我们可以使用 strstr() 函数来查找子字符串在父字符串中的位置,例如:
#include <string.h>
#include <stdio.h>
int main() {
char str1[] = "hello world";
char str2[] = "world";
char *p = strstr(str1, str2);
printf("%s\n", p); // 输出 world
return 0;
}
在上面的代码中,我们定义了两个字符数组 str1 和 str2,其包含了字符串 "hello world" 和 "world"。我们使用 strstr() 函数来查找 str2 在 str1 中的位置,结果为 "world"。
字符串复制
我们可以使用 strcpy() 函数来复制一个字符串,例如:
#include <string.h>
#include <stdio.h>
int main() {
char str1[] = "hello";
char str2[10];
strcpy(str2, str1);
printf("%s\n", str2); // 输出 hello
return 0;
}
在上面的代码中,我们定义了两个字符数组 str1 和 str2,其包含了字符串 "hello"。我们使用 strcpy() 函数将 str1 复制到 str2 中,结果为 "hello"。
总结
在本节中,我们介绍了 C 字符串的定义、初始化和常用操作,包括字符串比较、拼接、查找和复制等等。C 字符串常用的函数有 strcmp()、strcat()、strstr() 和 strcpy() 等等,需要注意的是,在使用这些函数的时候要避免字符串越界和内存泄露等问题。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C 字符串 - Python技术站