C语言自编strcmp函数实现:字符串比较算法详解

创始人
2025-01-18 01:03:31
0 次浏览
0 评论

求c语言实现strcmp功能的自编程序

#includeintmain(){intstrcmp(char*p1,char*p2);char*s1="helloworld";chars2[]="hello_world";chars3[]="helloworld";if(strcmp(s1,s2)==0){printf("字符串s1和s2等于相等!\n");}else{printf("字符串s1和s2不相等!\n");}if(strcmp(s1,s3)==0){printf("字符串s1和s3相等!\n");}else{printf("字符串s1和s3不相等!\n");}getchar();return0;}//编写自己的函数来比较字符串intstrcmp(char*p1,char*p2){for(;;){if(*p1=='\0'&&*p2=='\0'){return0;}if(*p1!=*p2){return(*p1-*p2);}p1++;p2++;}

设计一个c语言算法,实现strcmp(s,t)功能。不能直接调用库函数。

intstrcmp(char*s,char*t){while(*s&&*t){if(*s>*t)return1;if(*s

c语言编程写一个函数,实现两个字符串的比较,即写一个类似于strcmp功能的函数。急求,谢谢!

#includeintstrcmp(char*s1,char*s2){while((*s1++==*s2++)&&*s1);return(*s1-*s2);}voidmain(){chara[10],b[10];gets(a);gets(b);printf("%d\n",strcmp(a,b));}

帮我写一个简易的strcmp函数(C语言)。

①C的strcmp简明实现可以是这样的:

intstrcmp(constchar*s1,constchar*s2){while(*s1&&(*s1)=*s2))s1++,s2++;return*(constunsignedchar*)s1-*(constunsignedchar*)s2;}

②strcmp的返回值可以有3种类型,即<0>0(任意value),其代表含义为:str1strcmp采用二进制比较,表示按字典顺序排列,例如:字母a<字母b;并且a>A。
(这是因为a的ascii码是97,而A的ascii码是65)。

明白了这一点,上面的代码就更容易理解了。
while是对s1和s2从头到尾逐个字符进行比较。
如果s1为空,或者s1不等于s2,则循环中断(s1不为空,s2为空,则*s1!=*s2,退出循环)。
返回值是循环中断时的字符(分别对应s1和s2的位置,*s1-*s2,如果是上面提到的'a'-'A',那么返回值为97-65=32),表示a在A前面,strcmp>0。

之所以先转成constunsignedchar*再相减,是因为c中char有3种类型:char、signedchar和unsignedchar。
Char就像'a',signedchar是-127~126之间的值,unsignedchar是0~255之间的值。
转换为unsignedchar意味着“确保”'a'--->97。
如果您不想转换也没关系。

解释一下,许多Clib实现(例如gnuc)将结果处理为:-1,0,1,而不是与该字符对应的ASCII代码的差异。

热门文章
1
JSF架构解析与Java学习资源分享:J... JavaServerFacesJSF体系结构JavaServerFaces(JS...

2
数据结构C语言版深度解析与C语言入门很简... 《数据结构(C语言版)》.严蔚敏吴伟民著.pdf在《数据结构(C语言版)》一书中...

3
C语言字符串常量解析:区别、用途及存储方... 什么是字符串常量字符串常量是C语言中的一种数据类型,它是由一对双引号括起来的字符...

4
C语言printf函数:格式字符串与输出... printf函数中的格式与输出项有什么关系?在C语言中,printf函数中的格式...

5
Excel技巧:计算字符串起始位置与合并... 如何计算字符串在特定文本中的起始位置,怎么计算字符串在特定文本中的起始位置您可以...

6
Python发音全解:掌握正确的发音方法... python怎么读我的很多学习编程的朋友可能都知道Python这个词,但是他们中...

7
字符与字符串:编程中的基础文本类型解析 字符串什么意思字符串是由数字、字母和下划线组成的字符串,表示为s=“a1a2…a...

8
Python编程语言:多领域应用与开发优... Python的作用是什么?Python是一种跨平台计算机编程语言,是ABC语言的...

9
深度解析:C语言编程特点与应用领域 什么叫c语言C语言是一种编程语言。C编程语言应用广泛,具有以下特点和特点:1.语...

10
Java全解析:跨平台编程语言的魅力与多... java是什么Java是一种功能强大的编程语言,被称为“一次编写,随处运行”模型...