C语言详解字符串基础
在 C 语言中,字符串是一组字符的序列。字符串是以 '\0'(空字符)作为结尾的一维字符数组,例如下面是一个以 '\0' 结尾的 C 字符串:"hello world"。
char str[] = "hello world";
字符串与字符数组的主要区别在于其结尾以 '\0' 为止,因此 C 语言提供了一组标准库函数用于对字符串进行操作。
字符串常量
字符串常量不同于定义字符数组的方式,其实质是一个指针,因为字符串就是字符类型的指针。
char *str = "hello world";
字符串长度
C 语言提供了 strlen()
函数可以返回字符串的长度,不包含结尾的空字符。
#include <string.h>
int main() {
char str[] = "hello world";
int len = strlen(str);
printf("len: %d\n", len); // output: len: 11
return 0;
}
字符串拼接
C 语言提供了 strcat()
函数用于字符串拼接,注意这里的同时要保证第一个字符串大小足够容纳第二个字符串。
#include <string.h>
int main() {
char str1[15] = "hello";
char str2[] = " world";
strcat(str1, str2);
printf("%s\n", str1); // output: hello world
return 0;
}
字符串复制
C 语言提供了 strcpy()
函数用于字符串复制,同样需要保证第一个字符串大小足够容纳第二个字符串。
#include <string.h>
int main() {
char str1[15] = "hello";
char str2[] = " world";
strcpy(str1, str2);
printf("%s\n", str1); // output: world
return 0;
}
示例1:判断字符串是否相等
#include <string.h>
int main() {
char str1[] = "hello";
char str2[] = "world";
if (strcmp(str1, str2) == 0) {
printf("str1 and str2 are equal\n");
} else {
printf("str1 and str2 are not equal\n"); //output: str1 and str2 are not equal
}
return 0;
}
示例2:查找子串
#include <string.h>
int main() {
char str[] = "hello world";
char substr[] = "world";
char *pos = strstr(str, substr);
if (pos != NULL) {
printf("found: %s, position: %d\n", pos, (int)(pos - str)); // output: found: world, position: 6
} else {
printf("not found\n");
}
return 0;
}
以上就是 C 语言中字符串的基础操作,还有许多其他的字符串操作函数,建议大家多多学习。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言 详解字符串基础 - Python技术站