目录
1、strlen---计算字符串长度
size_t strlen( const char *string );
功能:计算字符串的长度并返回
注意事项:
1、字符串以'\0'结束标志,strlen函数返回的是'\0'前的字符个数(不包含'\0');
2、strlen函数的返回值是size_t(unsigned int),是无符号的;
3、参数所指向的字符串必须'\0'结尾。
4、头文件为<string.h>
使用案例:
代码:
#include <stdio.h>
#include <string.h>
int main()
{
char str[] = "abcde";//字符串后隐藏'\0',以\0'结尾
printf("%d\n", strlen(str));
return 0;
}
结果:
2、strcpy---字符串拷贝
char *strcpy( char *strDestination, const char *strSource );
功能:将源字符串(strSource)的内容(包括'\0')拷贝到目标字符串(strDestination)并返回目标字符串首字符地址
注意事项:
1、源字符串(strSource)必须以'\0'结尾
2、会将源字符串(strSource)中的'\0'拷贝到目标字符串(strDestination)
3、目标空间必须足够大,确保可以容纳得下源字符串(strSource)的内容
4、目标空间必须修改
5、头文件为<string.h>
使用案例:
代码:
#include <stdio.h>
#include <string.h>
int main()
{
char dest[30] = {0};//目标空间确保可以存放源字符串
char src[] = "abcdefg";
char* ret = strcpy(dest, src);
//验证是否返回目标字符串首字符地址
printf("%s\n", ret);
//验证目标字符串是否修改
printf("%s\n", dest);
return 0;
}
结果:
3、strcat---字符串追加
char *strcat( char *strDestination, const char *strSource );
功能:将源字符串(strSource)追加到目标字符串(strDestination)的后面,并返回目标字符串首字符地址
注意事项:
1、源字符串(strSource)必须以'\0'结尾
2、目标空间必须足够大,确保可以容纳得下源字符串(strSource)的内容
3、目标空间必须可修改
4、不可自己追加自己,需要这样做则使用strncat
5、头文件为<string.h>
使用案例:
代码
#include <stdio.h>
#include <string.h>
int main()
{
char dest[30] = "abcd";//目标空间确保可以容纳得下源字符串
char src[] = "efg";
char* ret = strcat(dest, src);
//验证是否返回目标字符串首字符地址
printf("%s\n", ret);
//验证目标字符串是否被追加
printf("%s\n", dest);
return 0;
}
结果
4、strcmp---字符串比较
int strcmp( const char *string1, const char *string2 );
功能:比较字符串string1与字符串string2是否相等,如果string1大于string2,则返回大于0的值 ,如果string1小于string2,则返回小于0的值 ,string1等于string2,则返回0。比较的方法:从string1和string2的首字符开始比较,比较它们的ASCII值,如果相等就比较下一个字符的ASCII值(包括\0)直到得出结果(两者比较到\0处后还相等,那就证明两字符串相等)
注意事项:
1、比较的两个字符串必需以'\0'结尾
2、了解其比较两字符串大小的方法
3、头文件为<string.h>
使用案例:
代码
#include <stdio.h>
#include <string.h>
int main()
{
char str1[30] = "abcd";
char str2[] = "abcd";
char str3[] = "dcba";
int ret1 = strcmp(str1, str2);
int ret2 = strcmp(str1, str3);
//否返回值
printf("%d\n", ret1);
if (strcmp(str1, str2) == 0)
{
printf("str1 == str2\n");
}
else if (strcmp(str1, str2) > 0)
{
printf("str1 > str2\n");
}
else
{
printf("str1 < str2\n");
}
//否返回值
printf("%d\n", ret2);
if (strcmp(str1, str3) == 0)
{
printf("str1 == str2\n");
}
else if (strcmp(str1, str3) > 0)
{
printf("str1 > str3\n");
}
else
{
printf("str1 < str3\n");
}
return 0;
}
结果