|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include<stdio.h>
- int main()
- {
- char a[100];
- char b[100];
- int n,i=0,c;
- printf("请输入要比较的字符串a;");
- scanf("%s",&a);
- printf("请输入要比较的字符串b;");
- scanf("%s",&b);
- printf("请输入要比较的字符个数;");
- scanf("%d",n);
-
- while(i<n)
- {
- if(a[i]-b[i]<0)
- {
- printf("比较的结果是%d",-32);
- c=0;
- break;
- }
- if(a[i]-b[i]==0)
- {
- c=1;
- }
- if(a[i]>b[i])
- {
- printf("比较的结果是%d",32);
- c=0;
- break;
- }
- i++;
- }
-
- if(c)
- {
- printf("比较的结果是%d",0);
- }
- return 0;
- }不知道为什么无法运行成功,希望大哥们可以告诉我原因
复制代码
本帖最后由 肖-肖 于 2021-4-12 19:51 编辑
我帮你修改了下:出现的问题都在-->注释里面了!
自己看就行了,应该能看明白!
- #include<stdio.h>
- int main()
- {
- char a[100];
- char b[100];
- 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[i]-b[i]<0)
- {
- //printf("比较的结果是%d",-32);//不用输出的
- c=0;
- break;
- }
- if(a[i]-b[i]==0)
- {
- c=1;
- }
- if(a[i]>b[i])
- {
- //printf("比较的结果是%d",32);
- c=0;
- break;
- }
- i++;
- }
- if(c)
- {
- printf("这两个字符串的前%d个字符比较的结果是相等的!",n);
- }else{
- printf("这两个字符串的前%d个字符比较的结果是不相等的!",n);
- }
- return 0;
- }
复制代码
运行结果如下:
对了在补充一句:strncmp() 用来比较两个字符串的前n个字符,区分大小写
OK 希望 有用吧
|
|