Arrays 读取stdin时,将char传递给char*类型时出错

Arrays 读取stdin时,将char传递给char*类型时出错,arrays,c,pointers,struct,Arrays,C,Pointers,Struct,在一个更大程序的一部分中,我试图将一行读入结构的一个元素,读入结构的数组。我想跳过行中的空格,行看起来像这样:“vt ab cda” 这就是我得到的错误: 错误:将“char”传递给“char*”类型的参数的整数到指针转换不兼容;使用&[-Werror,-Wint转换]获取地址 strcpy(字典[计数器])。第二行[i],c) 以下是我的代码部分: for (counter=0; counter<=MAX_DICT_WORDS-1; counter++) {

在一个更大程序的一部分中,我试图将一行读入结构的一个元素,读入结构的数组。我想跳过行中的空格,行看起来像这样:“vt ab cda”

这就是我得到的错误: 错误:将“char”传递给“char*”类型的参数的整数到指针转换不兼容;使用&[-Werror,-Wint转换]获取地址 strcpy(字典[计数器])。第二行[i],c)

以下是我的代码部分:


for (counter=0; counter<=MAX_DICT_WORDS-1; counter++)
   {    
        
        if (counter%3==1)
            
        {
            i=0;
            char c;
            c=getchar();
            while (!(c==' '))
            {
                strcpy(dictionary[counter].line_two[i],c);
                i+=1;
            }
        }



对于(counter=0;counterstrcpy将字符串作为参数,但c不是字符串。您不显示字典是如何声明的,因此很难进一步提供帮助。一般来说,您可以将字母逐个读入临时缓冲区,然后在找到空格strcpy时将该单词复制到字典中,或者逐行读取。现在,我似乎正在学习strcpy很生气你给了它一个糟糕的数据类型;c是一个
char
,需要是一个
char*
。可能像
char c[1]
?使用
字典[counter]。第二行[i++]=c;
而不是
strcpy()
。但您还需要修复while循环-可能是一个
if
if(c!='')
,我想。您也需要使用null终止字符串。@NickReed:它必须至少是
字符c[2];
,这样您就可以使用null终止符。使用标准c或POSIX。