c语言中如何输入一段字符串然后执行某程序?

一下程序运行在turbo c2.0中:
#include"stdio.h"
main()
{ void mingling(char b[]);
char a[]="zhang";
mingling(a);
}
void mingling(char b[])
{ int i;
char a[10];
i=3;
if(strcmp(gets(a),b)==0)
printf("\n%d\n",i);
else
printf("error");
}
我的想法是:输入一段字符串,然后系统判断是否符合要求,符合就执行某条程序,以上是我写的,但用gets命令不能输入空格和回车,所以我改成:#include"stdio.h"
main()
{ void mingling(char b[]);
char a[]="zhang";
mingling(a);
}
void mingling(char b[])
{ int i;
char a[10];
i=3;
if(strcmp(scanf("%s",a),b)==0)
printf("\n%d\n",i);
else
printf("error");
}
但运行后输入zhang显示的确实error,请问这是怎么回事?
有什么其他办法吗?我是在turbo c2.0中运行的。
可是我的想法是只要输入zhang字符串就执行某个函数,
把scanf("%s",a); 放到前面就不符合我的意思了!!!

第1个回答  2008-12-09
应该是这句的问题i f(strcmp(scanf("%s",a),b)==0),scanf("%s",a)的返回值是1或0;所以结果肯定不对。
分开写也行啊;
先scanf("%s",a),
然后i f(a,b)==0)
第2个回答  2008-12-09
if(strcmp(scanf("%s",a),b)==0)

scanf函数返回的是什么你知道么?strcmp需要什么类型的参数你知道么?

快去查查!
第3个回答  2008-12-09
scanf("%s",a),那个a后面没有取地址符号&
相似回答