为什么字符串相等,输出的还是st1>st2
#include<string.h>#include<stdio.h>
void main()
{
char st2[]="i";
char st1;
int k;
printf("请输入一段字符串:\n");
scanf("%c",&st1);
k=strcmp(st1,st2);
switch(k)
{
case 0:printf("st1=st2\n");break;
case -1:printf("st2>st1\n");break;
case 1:printf("st1>st2\n");break;
}
} 把scanf("%c",&st1); 改成scanf("%s",st1); 因为%c接收到的是\n “隐士” 发表于 2017-5-5 21:37
把scanf("%c",&st1); 改成scanf("%s",st1); 因为%c接收到的是\n
{:9_241:}那个地方是错了,但是大神还是不行,结果还是跟图片的错误一样 “隐士” 发表于 2017-5-5 21:37
把scanf("%c",&st1); 改成scanf("%s",st1); 因为%c接收到的是\n
那个地方是错了,但是大神还是不行,结果还是跟图片的错误一样{:9_241:} 本帖最后由 超凡天赐 于 2017-5-6 16:56 编辑
#include<string.h>
#include<stdio.h>
int main()
{
char st2[]="i";
char st1;
int k;
printf("请输入一段字符串:\n");
scanf("%s",st1);
k=strcmp(st1,st2);
if(k>0)
{
printf("st1>str2\n");
}
else if(k<0)
{
printf("str1<str2\n");
}
else
{
printf("str1=str2\n");
}
return 0;
}
strcmp()函数返回的是一个负数或零或整数,而不是-1或1或0;所以我没用switch strcmp -- 比较字符串
http://bbs.fishc.com/thread-70567-1-1.html
(出处: 鱼C论坛)
详细解释,看小甲鱼的这个函数快查贴,还有代码要高亮。{:10_256:}
不会看本版发帖请先读我!
http://bbs.fishc.com/thread-1742-1-1.html
(出处: 鱼C论坛)
hello`world 发表于 2017-5-6 07:49
那个地方是错了,但是大神还是不行,结果还是跟图片的错误一样
可以呀,我都在编译器上试了一下呢@ #include "stdafx.h"
#include "basement.h"
int main()
{
char st1[] = "i";
char st2;
int p, q;
scanf_s("%s", &st2, 10);
p=strcmp(st1, st2);
q=strcmp(st2, st1);
printf("%d %d\n", p, q);
printf("%s %s", st1, st2);
system("pause");
return 0;
}
超凡天赐 发表于 2017-5-6 09:58
strcmp()函数返回的是一个负数或零或整数,而不是-1或1或0;所以我没用switch
可是我在我的编译器上跑,结果就只有0、1、-1,为啥子??? 星若有泪 发表于 2017-5-6 23:39
可是我在我的编译器上跑,结果就只有0、1、-1,为啥子???
你的是什么编译器 超凡天赐 发表于 2017-5-6 10:01
strcmp -- 比较字符串
http://bbs.fishc.com/thread-70567-1-1.html
(出处: 鱼C论坛)
谢谢 黎明雨黍 发表于 2017-5-6 11:48
可以呀,我都在编译器上试了一下呢@
谢谢,大神费心了 超凡天赐 发表于 2017-5-6 23:41
你的是什么编译器
Dev c++
页:
[1]