使用字符串C,读取和编写字符串

时间:2013-03-05 04:43:36

标签: c++ c string

这是我的代码的一部分。我的程序读取.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]

我该如何解决?

2 个答案:

答案 0 :(得分:2)

strcat的签名是char *strcat(char*, char*),但您传递char作为第二个参数。第二个参数需要是{em>指针到char ......即&c ......但这不是整个解决方案......这里还有其他问题 - 所有c[0]不正确,因为c不是char的数组。我认为在大多数情况下你只是指c

答案 1 :(得分:1)

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

代码中的

第二个参数是char c,因此问题是