输入两个字符串,编一个程序实现strcmp()函数,请帮忙,谢谢!

来源:百度知道 编辑:UC知道 时间:2024/06/10 02:05:21
输入两个字符串,编一个程序实现strcmp()函数,请您看下我错在哪阿?请帮忙,谢谢!
#include<stdio.h>
#include<string.h>
void main()
{
char str1[100],str2[100];
int i=0,j=0;
printf("please enter your str1:\n");
gets(str1);
printf("str1=%s\n",str1);
printf("please enter str2\n");
gets(str2);
printf("str2=%s\n",str2);
for(i=0;i<100;i++)
{
if(str1[i]==str2[i]){printf("str1==str2");break;}
else if(str1[i]>str2[i]) {printf("str1>str2");break;}
else if(str1[i]<str2[i]) {printf("str2>str1");break;}
}
if(i==100) printf("str1==str2");
}
if(i==100) printf("str1==str2");
没有这一行!

谢谢,您的答案很好,但是我还没学指针不太懂,麻烦您看看我的程序哪有错,好吗?

谢谢二楼的,但是

你的程序错在循环条件下的判断部分,首先你要理解你需要实现的函数strcmp()的具体功能(他本身的功能是判断两个字符串str1和str2,如果str1>str2,则输出正数,如果str1<str2,则输出负数,否则输出0表示两字符串相等,其实这里面比较的是字符串长度),而你的程序里面用到的是直接对字符进行比较,如果仅仅判断两字符串完全一样可以这么去进行判断。另外在循环跳出break用法上好像不是很准确。
上面是我的一点浅见,你可以从这两方面去着手。

#include<stdio.h>
#include<string.h>

void main()
{
char str1[100],str2[100];
int i=0,j=0;
printf("please enter your str1:\n");
gets(str1);
printf("str1=%s\n",str1);
printf("please enter str2\n");
gets(str2);
printf("str2=%s\n",str2);
if(strlen(str1)==strlen(str2))
{
printf("str1==str2");
}
else if(strlen(str1)>strlen(str2))
{
printf("str1>str2");
}
else
{
printf("str2>str1");
}
}
你贴过去试试 是不是你想要实现的功能?

int strCompare(char *s1,char *s2){
while(*s1&&*s2){
if(*s1!=*