C语言编写一个程序,判别两字符串str1和str2的大小。要求不使用库函数strcmp.

如输入的两个字符串为 “abcd”、“abbcd”
则输出:str1>str2.
如输入的两个字符串为 “abcd”、“abdd”
则输出:str1<str2.
如输入的两个字符串为 “abcd”、“abcd”
则输出:str1=str2.

实际上这个题目就是要手动实现strcmp这个函数的功能,在面试中可能会遇到类似的问题(strcpy等)

#include <stdio.h>


// 当s1 > s2 的时候,会返回正数
// 当s1 < s2 的时候,会返回负数
// 当s1 == s2 的时候,会返回 0
int Mystrcmp(char *s1, char *s2)
{
if (s1 == NULL || s2 == NULL) // 字符串为空 
return 0;
while(*s1 == *s2 && *s1 != '\0')
{
s1++;
s2++;
}
return *s1 - *s2;
}

// 给了一个测试例子~可以自己写几个例子测试一下。
int main()
{
printf("%d\n", Mystrcmp("ab", "aa"));
}

温馨提示:内容为网友见解,仅供参考
无其他回答

C语言编写一个程序,判别两字符串str1和str2的大小。要求不使用库函数st...
int main(){printf("%d\\n", Mystrcmp("ab", "aa"));}

c语言两个字符串比较大小的问题,不使用strcmp函数
char a[N]={"abcdef"},b[N]={"abcdfg"};char c[N]={"abcdefg"},d[N]={"abcdefg"};char e[N]={"abcdefg"},f[N]={"abcdeeg"};cmp(a,b);cmp(c,d);cmp(e,f);return 0;} 运行效果:

用c语言编写程序,不使用strcmp函数,比较任意两个字符串的大小
0;\/\/如果长度不相同或发现不相等字符,则表示字符串不相等 return my_strcmp(++a,++b);\/\/判断下一个字符 }

编写C语言程序,不使用strcmp函数,比较任意两个字符串的...
丹凤呈祥龙献瑞 红桃贺岁杏迎春 福满人间 一年好运随春到 四季彩云滚滚来 万事如意

C语言的字符串函数strcmp()和strcnmp()
strncmp() 函数用于比较两个字符串的前n个字符(区分大小写),其原型为:int strncmp(const char * str1, const char * str2, size_t n); 【参数】str1, str2 为需要比较的两个字符串,n为要比较的字符数目。字符串大小的比较同样以ASCII码表的顺序决定,直到遇到字符串结束标志'\\0'或者比较...

编写一个函数实现两个字符串的连接(不使用库函数strcat).这个用C语...
void fun (char s1[],char s2[]){ int i,j;for (i=0;s1[i] !=’\\0’; i++); \/*求出的i为pA字符的总长度,包括结束标记位*\/ for (j=0;s2[j] !=’\\0’; j++)s1[i++]=s2[j]; \/*将pB字符串连在pA字符串的后面*\/ s1[i]='\\0’; \/*在字符串最后加上结束标记符*...

C语言 不用strcmp() 实现字符串比较
判断字符串str1是不是已经结束了,这里判断不严密,str1与str2都应判断是否已经结束。while( (str1[i]!='\\0')&&(str2[i]!='\\0'))if (str1[i]!=str2[i])break;else i++; \/\/继续判断下一个字符

用函数实现对两个字符串str1和str2的比较:strcmp (str1,str2)
这个函数是 字符串内字符自左向右逐个比较(按ASCII值大小相比较),直到出现不同的字符或遇'\\0'为止。当str1<str2时,返回值<0 当str1=str2时,返回值=0 当str1>str2时,返回值>0 程序如下:int strcmp(char * str1,char * str2){ int i=0,temp=0,ans=0;while((str1[i]!='\\0...

C语言 不用strcmp() 实现字符串比较
这句话才是遍历字符串啊。如果没有这句,只用k=str1[i]-str2[i]; 判断的话,只能判断第一个字符(如"a"和"ab"就会判定为相等了)。while(str1[i]) \/\/ 这句话是判断 字符串1 有没有到结尾if(str1[i]!=str2[i]) break; \/\/ 这计划是判断两个字符串的第 i 个字符相不相等,不相等就跳出else i...

...字符串的比较。不使用C语言提供的标准函数strcmp。输出比较的结果...
include "stdio.h"int main(int argv,char *argc[]){char a[100],b[100],i;printf("Input 2 strings...\\n");scanf("%100s%100s",a,b);for(i=0;a[i]==b[i] && a[i];i++);printf("%d\\n",a[i]-b[i]);return 0;}运行样例:...

相似回答