在代码中不推荐将字符串常量转换为'char *'

时间:2012-09-04 01:27:31

标签: c++ string gcc

  

可能重复:
  C++ deprecated conversion from string constant to ‘char*’

我在3个地方的gcc编译器上得到“从字符串常量到'char *'的弃用转换”错误。

当我在codeblock上编译时,没有错误。

char* decodeCode(char* encodedString)
{
    const char*  decodedString = "";   // ERROR
    char* a = encodedString;
    char store[10000];

    for(int j=0;j <strlen(a);j++)
    {
        if (isdigit(a[j]) || a[j] == '#')
            continue;
        else return "";    //ERROR
    }   
} 

int main()
{
    const char* a;
    a = decodeCode("6999066263304447777077766622337778");   // ERROR
    printf("%s",a);
    return 0;
}

你知道我怎么解决它吗?如果是这样,请清楚地写下来(我是新手......)。

1 个答案:

答案 0 :(得分:5)

您需要将const限定符添加到变量的声明和修复此函数的函数中:

const char* decodeCode(const char* encodedString) {
    ....
    const char* a = encodedString;
    ....
}

<小时/> 注意:您的函数底部缺失,但请确保在未复制的情况下不返回store