从'const char*';的转换无效;改为“char*'”; 为什么ReftSoWord不得到相应的字符串?< P>你得到的C++错误消息都表示:

从'const char*';的转换无效;改为“char*'”; 为什么ReftSoWord不得到相应的字符串?< P>你得到的C++错误消息都表示:,c++,string,strcmp,C++,String,Strcmp,从'const char*'到'char*'的转换无效 您正试图为非常量结果\u word分配一些常量“” 改变 results_word = strncmp( s1, s2, n ) > 0 ? " greater than " : strncmp( s1, s2, n ) == 0 ? " equal to " : " smaller than " ; printf( "\n%sis%s%s",

从'const char*'到'char*'的转换无效

您正试图为非常量
结果\u word
分配一些常量
“”

改变

    results_word = 
                 strncmp( s1, s2, n ) > 0 ? " greater than " : 
                 strncmp( s1, s2, n ) == 0 ? " equal to " : " smaller than " ;

    printf( "\n%sis%s%s", s1, results_word, s2 );

    getche();
    return 0;
}//end function main
将来

char *results_word;

它会起作用。

< P>你所得到的C++错误消息都表示:

从'const char*'到'char*'的转换无效

您正试图为非常量
结果\u word
分配一些常量
“”

改变

    results_word = 
                 strncmp( s1, s2, n ) > 0 ? " greater than " : 
                 strncmp( s1, s2, n ) == 0 ? " equal to " : " smaller than " ;

    printf( "\n%sis%s%s", s1, results_word, s2 );

    getche();
    return 0;
}//end function main
将来

char *results_word;

它会起作用。

我认为你在使用C++编译器,而不是CUN似乎使用Borland /Turbo C,这不是标准的抱怨,也不是支持现代C.Cuth.GETSH()/Cyto>是不安全的,已经被弃用。改用
fgets()
。顺便说一句,你的代码看起来不错
常量字符*结果\u字我认为你在使用C++编译器,而不是CUN似乎使用Borland /Turbo C,这不是标准的抱怨,也不是支持现代C.代码> GETSH()/Cyt>是不安全的,已经被弃用。改用
fgets()
。顺便说一句,你的代码看起来不错
常量字符*结果\u字你假设C++编译器吗?@ ShafikYaghmour:C是正确的,这将不是问题。@ SHIZ6然后标记C++。答案因您使用的语言而异。这在C11中是否已修复?字符串文字现在是
const char*
,与以前一样。允许对文本使用
char*
是一个兼容性问题。@ZanLynx您想到的是C++11,它确实删除了这种转换。在C中,就我所知,即使在C11中,字符串文字也有类型<代码> char [] /Cord>。假设C++编译器吗?@ ShafikYaghmour:C是正确的,这将不是问题。@ SHIZ6然后标记C++。答案因您使用的语言而异。这在C11中是否已修复?字符串文字现在是
const char*
,与以前一样。允许对文本使用
char*
是一个兼容性问题。@ZanLynx您想到的是C++11,它确实删除了这种转换。在C语言中,据我所知,即使是在C11中,字符串文字也确实具有类型
char[]