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;
}
烦请看一下程序是否正确,如果不正确,正确解答是什么,谢谢大家啦 展开
题目如下,输入一个字符串,以回车结束(字符串长度<=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;
}
烦请看一下程序是否正确,如果不正确,正确解答是什么,谢谢大家啦 展开
2个回答
展开全部
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账号。
b->w[15] 改为&b->w[15]试试
不好意思啊,我刚才的回答没有测试
后面的也加个&这行的编译一定通过
while(strcmp(&b->w[15],&w[15])&&a!=NULL)
我已经测试过了
strcmp的两参数都得为地址 w是地址,w[15]就变量了,你保证两个都是地址决对可以
你这题里的b应该是一结构指针,其结构体中有数组成员
这东西是麻烦,希望能帮上你
如果还没解决你的问题,可以加我百度HI账号。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询