c语言写strcmp函数 c语言strcmp

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

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

创新互联是一家专业提供新源企业网站建设,专注与做网站、成都网站制作、H5网站设计、小程序制作等业务。10年已为新源众多企业、政府机构等服务。创新互联专业网站建设公司优惠进行中。

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

2.下面实现代码:

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

扩展资料:

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

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

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

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

参考资料来源:百度百科-strcmp函数

c语言中的strcmp函数

c风格字符串是以'\0'为结束标志的。如果你的name[10]没有初始化,用scanf得到前3个字符为abc,后面的是随机的,当你使用strcmp(name,

"abc")的时候,有可能你的name低第四个字符正好是'\0',那么此时就是两个相同,否则就是不同。

举个例子

如果你的name的分布是"abc\0defghi";此时你使用strlen获取他的长度将会是3,这就是c风格字符串以'\0'结束,后面的就不考虑了,使用strcmp也是同样的道理。

解决的办法是你在name定义的时候初始化

两种方法

1、char

name[10]

=

{0};

2、char

name[10];

memset(name,

0,

sizeof(name));

c语言strcmp函数

strcmp返回的实际上是两个字符串中第一个不同的字符的ASCII码的差,差大于0说明是关系,小于0则是关系.60,和1一样是表示大于,而且返回ASCII码的确切差值,可以方便用来实现一些其他的应用,比只知道大于带来了更多的信息

C语言中的strcmp函数有什么作用,它的格式是怎样的?

一.strcmp函数

strcmp函数是比较两个字符串的大小,返回比较的结果。一般形式是:

i=strcmp(字符串,字符串);

其中,字符串1、字符串2均可为字符串常量或变量;i 是用于存放比较结果的整型变量。比较结果是这样规定的:

①字符串1小于字符串2,strcmp函数返回一个负值;

②字符串1等于字符串2,strcmp函数返回零;

③字符串1大于字符串2,strcmp函数返回一个正值;

二,strcpy函数

strcpy函数用于实现两个字符串的拷贝。一般形式是:

strcpy(字符中1,字符串2)


网站题目:c语言写strcmp函数 c语言strcmp
转载来源:http://scyanting.com/article/dosgjdo.html