这边文章对c语言的字符串处理的常用库函数总结一下,并进行实现。
1.字符串比较
int strcmp(const char *s1, const char *s2);
比较两个字符串的大小(不忽略大小写),返回值很有学问:如果s1小于s2返回一个小于0的数,如果s1大于s2返回一个大于0的数,如果相等则返回0。返回值是两个字符串中第一个不相等的字符ascii码的差值。实现如下:
int my_strcmp(const char *s1, const char *s2){
//important! validate arguments first!
assert(NULL !=s1 && NULL != s2);
while(*s1 != '\0' && *s2 != '\0' && *s1==*s2){
s1++;
s2++;
}
return *s1 - *s2;
}
注意再函数开始进行参数检查,防止输入参数有NULL时发生运行时错误。
strcmp是最常用的字符串比较函数,一般用法是if(!strcmp(s1, s2)){ ...}。如果不是对整个字符串进行比较而只是比较指定数目的字符串,可以使用函数: