【问题标题】:Working with Strings C, Reading and Writing strings使用字符串 C,读取和写入字符串
【发布时间】:2013-03-05 04:43:36
【问题描述】:

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

我该如何解决?

【问题讨论】:

标签: c++ c string


【解决方案1】:

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

【讨论】:

  • 真的很感谢我看到了 c[0] 但仍然出现错误,我自己无法弄清楚&谢谢 :)
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-08
    相关资源
    最近更新 更多