字符串的常用函数
1:字符串的拼接
strcat用于拼接字符串, TA会把src中的内容拼接到dest后面, 从dest的\0开始拼接src
注意点:name1数组要能够容纳得下 name1本身的字符 + name2的所有字符,
拼接完成后会自动在后面加上一个\0
将src中number个字符拼接到dest后面
strncat(char * dest, const char * src, size_t number)
dest 要被拼接的字符串
src 要拼接到dest后买呢的字符串
number 要拼接多少个
剩余容量 = 总容量 - 已占用容量 - 1 (\0)
int number = sizeof(name1) - strlen(name1) - 1;
strncat(name1, name2, number);
2:字符串的拷贝
会把src中的内容拷贝到dest中
strcpy(char *dest, const char *src);
注意点:dest的容量必须足够大,否则会报错
拷贝之后并不会清空以前的字符串
strcpy(name1, name2);
拷贝src中number个字符到dest中
strncpy(char *dest, const char *src, size_t number);
注意:strncpy 会在拷贝之后自动加上\0所以要给\0留出一个位置
3:字符串比较
char name1[] = "abd";
char name2[] = "abc";
strcmp会比较str1和str2是否相等
如果相等会返回一个int类型的值
如果str1 等于 str2返回0
如果str1 大于 str2返回1(是一个整数)
如果str1 小于 str2返回-1(是一个负数)
是逐个比较
strcmp(const char *str1, const char *str2);
int rs = strcmp(name1, name2);
比较str1和str2中的number个字符
strncmp(const char *str1, const char *str2, size_tnumber)
int rs = strncmp(name1, name2, 3);
字符串数组:
char name[][5] =
{
"jyk",
"jyk"
};
char name2[2][5] =
{
{'j', 'y', 'k', '\0'},
{'j', 'y', 'k', '\0'}
};
输出字符串数组中的某一个字符串
printf("%s\n", name[0]);
输出字符串数组中的某一个字符串中的某一个元素
char name[][5] =
{
"jyk",
"jyk"
};
printf("%s\n", name[1][1]);