C语言问题:不用strcmp函数比较两个字符串的大小

#include<stdio.h>
main()
{ int i=0;
char a[100],b[100];
gets(a);gets(b);
while(a[i] == b[i]&&a[i]!='\0')i++;
if (a[i] == '\0')
printf("The 2 strings are the same.");
else
printf("The 2 strings are different.");
}

这个程序只能比较两个字符串是否相同 如果改这个程序 使它能比较出字符串a>b a<b a=b 三种情况呢?

#include<stdio.h>

#define N 80

void cmp(char a[N],char b[N])

{

int i=0;

char *p1=a,*p2=b;

while(*(p1+i)==*(p2+i)&&*(p1+i)!='\0')

{

i++;

}

if(*(p1+i)>*(p2+i))

printf("%s>%s\n",p1,p2);

else if(*(p1+i)<*(p2+i))

printf("%s<%s\n",p1,p2);

else

printf("%s=%s\n",p1,p2);

}

int main()

{

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;

}

运行效果:

扩展资料:

while语句若一直满足条件,则会不断的重复下去。但有时,需要停止循环,则可以用下面的三种方式:

一、在while语句中设定条件语句,条件不满足,则循环自动停止。

如:只输出3的倍数的循环;可以设置范围为:0到20。

二、在循环结构中加入流程控制语句,可以使用户退出循环。

1、break流程控制:强制中断该运行区内的语句,跳出该运行区,继续运行区域外的语句。

2、continue流程控制:也是中断循环内的运行操作,并且从头开始运行。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-04-05
#include<stdio.h>
int main()
{
int i=0;
char a[100],b[100];
gets(a);gets(b);
while(a[i] == b[i]&&a[i]!='\0')i++;
if (a[i] == '\0'&&b[i]=='\0')
printf("The 2 strings are the same. a =b\n");
else {
if(a[i] > b[i])
printf("The 2 strings are different. a > b\n");
else
printf("The 2 strings are different. a < b\n");
}
}本回答被提问者和网友采纳
第2个回答  2009-02-05
做减法可以比较啊

C语言问题:不用strcmp函数比较两个字符串的大小
strcmp函数是用来比较字符串的,而字符串以'\\0'作为结尾标志,故要加上&&a[i]!='\\0'。

C语言问题:不用strcmp函数比较两个字符串的大小
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函数,比较任意两个字符串的大小
int my_strcmp(const char *a, const char *b){ if (((a == 0) && (b == 0)) || ((*a == 0) && (*b == 0))) return 1; \/\/如果已经比较到字符串结尾,则表示字符串相等 if ((strlen(a) != strlen(b)) || (a[0] != b[0])) return 0; \/\/如果长度不相同或发...

c语言两个字符串比较大小的问题,不使用strcmp函数
不过不用加头文件string.hwhile((str1[i]==str2[i])&&(str1[i]!='\\0')) i++; 这是说两个字符串从首位字符开始比较、如果相比较的两个字符相等且第一个字符串没有到结尾、那么要比较的字符各向后移动一位、str1[i]!='\\0'是判断字符串结束的、当不满足条件时就会继续向下执行if(str1[i]=='\\...

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

不用strcmp函数,试构造一个函数比较两个字符串大小
这个怎样?int com(char x[],char y[]){ int i,z;z=0;for(i=0;(x[i]!='\\0'||y[i]!='\\0')!=0;i++){ if(x[i]>y[i]){ z=1;break;} if(x[i]<y[i]){ z=2;break;} } return z;}

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

不使用strcmp函数实现比较两个字符串的功能
i = 0;while((a[i] == b[i]) && (a[i] != '\\0')) i++;if (a[i] == '\\0')printf("The 2 strings are the same.");else printf("The 2 strings are different.");--- 大概就是这样吧...

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

利用指针来比较两个字符串大小,不能用strcmp()函数 的程序怎么写
{ if(aa[a]>bb[a]){ c+=1;return(c);\/\/break;} if(aa[a]<bb[a]){ return(c);\/\/break;} } } void main(){char*str[1][20];int a,b,c,d,e,f,h,i,j;printf("please input five char:\\n");\/*scanf("%s%s%s",str[0],str[1],str[2],str[3],str[4]);*\/ s...

相似回答