模仿strncmp
#include<stdio.h>int main()
{
char a;
char b;
int n,i=0,c;
printf("请输入要比较的字符串a;");
scanf("%s",&a);
printf("请输入要比较的字符串b;");
scanf("%s",&b);
printf("请输入要比较的字符个数;");
scanf("%d",n);
while(i<n)
{
if(a-b<0)
{
printf("比较的结果是%d",-32);
c=0;
break;
}
if(a-b==0)
{
c=1;
}
if(a>b)
{
printf("比较的结果是%d",32);
c=0;
break;
}
i++;
}
if(c)
{
printf("比较的结果是%d",0);
}
return 0;
}不知道为什么无法运行成功,希望大哥们可以告诉我原因
第15行咋没有取址符 本帖最后由 肖-肖 于 2021-4-12 19:51 编辑
我帮你修改了下:出现的问题都在-->注释里面了!
自己看就行了,应该能看明白!
#include<stdio.h>
int main()
{
char a;
char b;
int n,i=0,c;
printf("请输入要比较的字符串a: ");
//scanf("%s",&a); //首先用scanf接收字符串的话只能是一串连续的字符串所以我这里用gets
gets(a);
printf("请输入要比较的字符串b: ");
//scanf("%s",&b);//同理
gets(b);
printf("请输入要比较的字符个数: ");
scanf("%d",&n);//这里应该是:&n 因为是取变量的地址嘛
while(i<n)
{
if(a-b<0)
{
//printf("比较的结果是%d",-32);//不用输出的
c=0;
break;
}
if(a-b==0)
{
c=1;
}
if(a>b)
{
//printf("比较的结果是%d",32);
c=0;
break;
}
i++;
}
if(c)
{
printf("这两个字符串的前%d个字符比较的结果是相等的!",n);
}else{
printf("这两个字符串的前%d个字符比较的结果是不相等的!",n);
}
return 0;
}
运行结果如下:
对了在补充一句:strncmp() 用来比较两个字符串的前n个字符,区分大小写
OK 希望有用吧 肖-肖 发表于 2021-4-12 19:48
我帮你修改了下:出现的问题都在-->注释里面了!
自己看就行了,应该能看明白!
谢谢大哥
页:
[1]