error C2664: 'strcmp' : cannot convert parameter 1 from 'char' to 'const char *'

做单词替换的C语言编程,为什么会出来errorC2664:'strcmp':cannotconvertparameter1from'char'to'constchar*'... 做单词替换的C语言编程,为什么会出来error C2664: 'strcmp' : cannot convert parameter 1 from 'char' to 'const char *'呢?
题目如下,输入一个字符串,以回车结束(字符串长度<=100)。该字符串由若干个单词组成(单词都是英文字母组成),单词之间用一个空格隔开,所有单词区分大小写。现需要将其中的某个单词替换成另一个单词,并输出替换之后的字符串。
输入包括3行:
第1行是包含多个单词的字符串 s
第2行是待替换的单词 a (长度<=100)
第3行是a将被替换的单词 b (长度<=100)
s, a, b 最前面和最后面都没有空格。
输出只有 1 行:
将s中所有单词a替换成b之后的字符串。
如果s中单词a没有出现,则将s原样输出。
我的程序是这样的
#include<stdio.h>
#include<string.h>
int main()
{
char input[100],a[100],b[100],s[100][100];
char
int i,j,k,c,d,e,f;
gets(input);
gets(a);
gets(b);
c=strlen(input);
d=strlen(input);
e=strlen(input);
if(d<e)
{
f=d;
d=e;
e=f;
}
for(i=0;i<c;i++)
{
for(j=0;j<c;j++)
{
if(input[j]==' ')break;
s[i][j]=input[j];
}
}
for(i=0;i<c;i++)
{
if(strcmp(s[i][j],a)==0)
{
for(j=0;j<d;j++)
s[i][j]=b[j];
}
}
for(i=0;i<c;i++)
{
for(j=0;j<d;j++)
printf("%s",s[i][j]);
}
return 0;
}

烦请看一下程序是否正确,如果不正确,正确解答是什么,谢谢大家啦
展开
 我来答
军军106
2010-11-25 · TA获得超过453个赞
知道小有建树答主
回答量:1747
采纳率:0%
帮助的人:765万
展开全部
变量不能赋值给常变量。 应该是下面一句的问题:
if(strcmp(s[i][j],a)==0)
strcmp()函数参数必须是指针,但你的程序中第一个参数只是一个字符。
fctas08
推荐于2018-03-02 · TA获得超过428个赞
知道小有建树答主
回答量:459
采纳率:0%
帮助的人:348万
展开全部
strcmp 参数1不能从const char*转换为char型

b->w[15] 改为&b->w[15]试试
不好意思啊,我刚才的回答没有测试
后面的也加个&这行的编译一定通过
while(strcmp(&b->w[15],&w[15])&&a!=NULL)
我已经测试过了

strcmp的两参数都得为地址 w是地址,w[15]就变量了,你保证两个都是地址决对可以

你这题里的b应该是一结构指针,其结构体中有数组成员

这东西是麻烦,希望能帮上你
如果还没解决你的问题,可以加我百度HI账号。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式