当前位置:首页 » 编程语言 » c语言strcmp源码
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言strcmp源码

发布时间: 2022-12-10 10:49:11

c语言strcmp函数是什么样的代码

C语言中strcmp函数是string库的常用函数。其原型代码和介绍如下:

1.先说一下这个函数的实现原理,向strcmp()函数中传入两个字符串(记为str1,str2).传入之后,通过把str1的各字母的ASCII码值和str2的各字母的ASCII码值进行比较。若str1>str2则返回正数,若str1=str2则返回0,否则,则返回负数。

2.下面实现代码:

3.整个函数的原型中得益于“(*str1!='')&&(*str1==*str2)”这一句的代码,因为这样当字符指针指向空,意味着字符串已经移动到最后了,比较结束,此时可以退出循环。而如果两个字符串不相等时,则此时函数也可以退出了。

(1)c语言strcmp源码扩展阅读:

这个函数要注意一下几点:

①使用*(unsigned char*)str1而不是用*str1。这是因为传入的参数为有符号数,有符号字符值的范围是-128~127,无符号字符值的范围是0~255,而字符串的ASCII没有负值,若不转化为无符号数这回在减法实现时出现错误。

②While循环中ret=*(unsigned char*)str1-*(unsigned char*)str2) && *str1,最后与上str1也可以换成str2,因为前面已经做了相减,无论哪个先为‘’都会退出。因为最后与上str1是为了判断str1是否结束,即是否为‘’。

③这个函数没有判断参数为NULL时的情况,所以当传入NULL时程序会崩溃。网上看别人说商业化代码都会在调用strcmp前先判断是否为NULL,所以可以不用判断NULL;我在VC6上测试string.h中的strcmp(NULL,NULL),程序也会崩溃。这里可以根据实际情况来决定。

参考资料来源:网络-strcmp函数

❷ C语言strcmp函数是什么样的代码

1、cmp

compare,比较的缩写。
2、strcmp是c语言中头文件<string.h>(字符串函数)中定义的一个用于对两组字符串进行比较的函数,它的返回值是int类型。
假设有两组字符串cs和ct,当cs<ct时,函数返回一个负数;当cs==ct时,函数返回0;当cs>ct时,函数返回一个正数。
即:两个字符串自左向右逐个字符相比(按ascii值大小相比较),直到出现不同的字符或遇'\0'为止。如:"a"<"b"
,"a">"a"
,"computer">"compare"
,"comput">"comp"
strcmp函数原型为:int
strcmp(const
char
*s1,const
char
*
s2);