在文章嵌入式Linux开发《C语言专题(五:(3)实用的字符串函数2)》中对C语言中部分字符串函数做了详细介绍,这篇文章将紧跟着前一篇文章详细讲解后续字符串操作函数。
(8)strcasecmp:忽略大小写比较字符串
函数名:strcasecmp
函数原型:int strcasecmp(const char *s1, const char *s2);
功能:忽略大小写比较字符串
返回值:如果忽略大小写比较结束一样,那么这2个字符串相等。如果s1小于s2则比较的结果小于0,如果s1大于s2则比较的结果大于0,如果s1等于s2则比较的结果等于0,所以可以将比较的结果与0比较来判断2个字符串的大小。
说明:比较的方法是对2个字符串中的字符忽略大小写逐个进行比较,直到遇到不匹配(也就是要么大于要么小于)情况就结束。
代码演示:
#include //一定要加上字符串操作头文件#include //演示字符串忽略大小写比较操作int main(int argc, char** argv){char *src = "ab";char *dest = "AB";int n = strcasecmp(src, dest);//运行结果:字符串忽略大小写比较ab等于ABif (n == 0){printf("字符串忽略大小写比较ab等于AB");}else if(n > 0){printf("字符串忽略大小写比较ab大于AB ");}else{printf("字符串忽略大小写比较ab小于AB ");}return 0;}
(9)strncasecmp:忽略大小写比较字符串的前n个字节
函数名:strncasecmp
函数原型: int strncasecmp(const char *s1, const char *s2, size_t n);
功能:忽略大小写比较字符串的前n个字节
返回值:与strcasecmp一样
说明:与strcasecmp一样
代码演示:
#include //一定要加上字符串操作头文件#include //演示字符串忽略大小写1个字节比较操作int main(int argc, char** argv){char *src = "ab";char *dest = "AB";int n = strncasecmp(src, dest, 1);//运行结果:字符串忽略大小写比较第一个字节ab等于ABif (n == 0){printf("字符串忽略大小写比较第一个字节ab等于AB");}else if(n > 0){printf("字符串忽略大小写比较第一个字节ab大于AB ");}else{printf("字符串忽略大小写比较第一个字节ab小于AB ");}return 0;}
(10)strchr:在字符串s中查找指定字符c首次出现的位置
函数名:strchr
函数原型:char *strchr(const char *s, int c);
功能:在字符串s中查找指定字符c首次出现的位置
返回值:如果找到返回在字符串s中第一次出现字符c的位置;如果没有找到,返回NULL
说明:返回的位置是相对于字符串的首地址加上 所查找字符相对于字符串首地址的偏移量
代码演示:
#include //一定要加上字符串操作头文件#include //演示在字符串中查找指定字符第一次出现的位置int main(int argc, char** argv){char *str = "hello world"; //运行结果:str的地址为:0x8048530 //查找字符串str中第一个字母l的位置:0x8048532 //刚好地址相差2个字节printf("str的地址为:%p