0

这是我的代码的一部分。我的程序读取 .txt 并分析文本中写入的指令以执行操作。

char *insertar(char line[1024],int num)
{
    int i=9;
    int pos=0;
    char c;
    while(i<strlen(line))
    {
        c=line[i];
        switch(pos){
            case 0:
                if((c[0]!=',')||(c[0]!=')'))
                {
                    strcat(reg[num].codigo,c);
                }
                else{
                    pos++;
                }
                break;
            case 1:
                if((c[0]!=',')||(c[0]!=')'))
                {
                    strcat(reg[num].placa,c);
                }
                else{
                    pos++;
                }               
                break;
            case 2:
                if((c[0]!=',')||(c[0]!=')'))
                {
                    strcat(reg[num].year,c);
                }
                else{
                    pos++;
                }               
                break;
            case 3:
                if((c[0]!=',')||(c[0]!=')'))
                {
                    strcat(reg[num].tipo,c);
                }
                else{
                    pos++;
                }               
                break;
            case 4:
                if((c[0]!=',')||(c[0]!=')'))
                {
                    strcat(reg[num].marca,c);
                }
                else{
                    pos++;
                }               
                break;
            default:
                reg[num].estado=1;
                return 0;
                break;
        }       
    i++:
    }
    fwrite();
}

问题在于,在每一条线中

strcat(reg[num].codigo,c);

我收到此错误:

error: invalid conversion from 'char' to 'const char*' [-fpermissive]

我该如何解决?

4

2 回答 2

2

strcatis的签名char *strcat(char*, char*),但您将 achar作为第二个参数传递。第二个参数需要是指向...的指针,char&c...但这不是全部解决方案...这里还有其他问题-所有问题c[0]都不正确,因为c不是char. 我认为在大多数情况下,您的意思是c

于 2013-03-05T04:47:20.770 回答
1

strcat 的签名是 char * strcat ( char * destination, const char * source );

在您的代码中,第二个参数是 char c,因此问题

于 2013-03-05T04:48:15.793 回答