头文件
include <string.h>
五大函数:
strlen()、strcpy、strcat()、strcmp()、strstr()
用法:
strlen():计算字符串长度,但不计'\0'这个字符
cpp
#include <string.h>
int main()
{
char arr[] = "abcdef";
int len = strlen(arr);
printf("%d\n", len);
return 0;
}
输出:6
strcpy:把arr2[]字符串复制到arr1[]上(包括终止符)
cpp
#include <string.h>
int main()
{
char arr1[] = "abcdef";
char arr2[] = "abc";
strcpy(arr1, arr2);
printf("%s\n", arr1);
return 0;
}
输出:abc
strcat():把arr2[]字符串追加到arr1[]上(覆盖掉arr1[]的'\0',arr2[]的'\0'保留下来)
cpp
#include <string.h>
int main()
{
char arr1[20] = "hello";
char arr2[] = " world";
strcat(arr1, arr2);
printf("%s\n", arr1);
return 0;
}
输出:hello world
strcmp():
-
strcmp()函数根据ASCII编码开始比较俩个字符串中的第一对字符,如果彼此相等, 继续 比较下一对字符所对应的ASCII码值,直到字符不相同或者达到终止字符'\0';
-
函数返回值类型为 int
-
函数返回值为0,表示俩个字符串相等;
函数返回值为大于0的数字,表示第一个字符串大于第二个字符串;
函数返回值为小于0的数字,表示第一个字符串小于第二个字符串;
cpp
#include <string.h>
int main()
{
char* arr1 = "abcdef";
char* arr2 = "abc";
int ret = strcmp(arr1, arr2);
if (ret > 0)
{
printf("> ");
printf("ret=%d\n", ret);
}
else if (ret == 0)
{
printf("=");
printf("ret=%d\n", ret);
}
else
{
printf("<");
printf("ret=%d\n", ret);
}
return 0;
}
输出:> ret=1