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

use*_*595 2 c++ string gcc

可能重复:
C++不推荐将字符串常量转换为'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;
}
Run Code Online (Sandbox Code Playgroud)

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

das*_*ght 5

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

const char* decodeCode(const char* encodedString) {
    ....
    const char* a = encodedString;
    ....
}
Run Code Online (Sandbox Code Playgroud)


注意:函数的底部缺失,但请确保在store不复制的情况下不返回.