c++题目:代码显示strcpy那里错cannot convert parameter 1 from 'char' to 'char *'

#include<iostream>#include<algorithm>#include<stdio.h>usingnamespacestd;intmain(){int... #include<iostream> #include<algorithm> #include<stdio.h> using namespace std; int main() { int n,k,s,i,j,t,id,l,flat=1; char a[100],b[1000]; while(cin>>n) { if(flat) flat=0; else cout<<endl; getchar(); for(i=1;i<=n;i++) { gets(a); l=strlen(a); k=0; for(j=l-1;j>=0;j--) { if(a[j]==' ') { t=j; j++; break; } } a[t]='\0'; sscanf(a+j,"%d",&id); strcpy(b[id],a); } cin>>k; for(j=0;j<k;j++) { cin>>s; if(s>n) puts("void"); else puts(b[s]); } } return 0; }为什么一定要数组b变成b[1000][64]就不会有错,可实在搞不懂为啥用到二维数组 展开
 我来答
pardream941026
2016-11-11 · TA获得超过8216个赞
知道大有可为答主
回答量:4602
采纳率:89%
帮助的人:1294万
展开全部
cannot convert parameter 1 from 'char' to 'char *'
提示得很清楚啊,strcpy的参数是char*类型,你传递的参数是char类型,当然不正确。
char类型是使用=来赋值的。
strcpy(b[id],a); b[id] = (char)a;
追问
那我该如何修改才能完成这道题,我看到有个学长就用二维数组b[1000][64]就能成功,不是很懂什么意思
追答
#include<iostream> 
#include<algorithm> 
#include<stdio.h> 
using namespace std; 
int main() { 
    int n,k,s,i,j,t,id,l,flat=1; 
    char a[100],b[1000][100];  //b改成2维,长度与a[100]相同。
    while(cin>>n) { 
        if(flat) 
            flat=0; 
        else 
            cout<<endl; 
        getchar(); 
        for(i=1;i<=n;i++) { 
            gets(a); 
            l=strlen(a); 
            k=0; 
            for(j=l-1;j>=0;j--)  { 
                if(a[j]==' ') { 
                    t=j; 
                    j++; 
                    break; 
                } 
            } 
            a[t]='\0'; 
            sscanf(a+j,"%d",&id); 
            strcpy(b[id],a); 
        } 
        cin>>k; 
        for(j=0;j<k;j++) { 
            cin>>s; 
            if(s>n) 
                puts("void"); 
            else 
                puts(b[s]); 
        } 
    } 
    return 0; 
}

这不是你自己写的程序?你定义char b[]来存储 char * 类型的数据,当然不行。
char *b[] 或者char b[][]才可以
eg. char b[][] = 
{
"I'm the first string"
"I'm the second string",...
}
这样定义,b[id]才可以存储字符串。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式