警告C4047:'=':'char'的间接级别与'char [2]'不同

Tch*_*Jr. -1 c

每当我编译程序时,我都会收到一个错误:警告C4047.我对使用这种语言进行编程非常陌生,并且不了解问题是什么或如何修复它.非常感谢任何帮助,谢谢.

错误特别在线 word[x - 1] = "i";

void RuleOne(char word[], char plural[]) {

    int x = strlen(word);

    word[x - 1] = "i";

    plural = strcat(word, "es");

}
Run Code Online (Sandbox Code Playgroud)

iBu*_*Bug 6

word[x - 1] = "i";
Run Code Online (Sandbox Code Playgroud)

"i"字符串文字,而不是字符常量.

如果需要字符,请使用单引号:

words[x - 1] = 'i';
               ^ ^
Run Code Online (Sandbox Code Playgroud)

此外,你做错了plural.这是一个错误的工作:

plural = strcat(word, "es");
Run Code Online (Sandbox Code Playgroud)

您实际上是追加"es"word,让指针plural指向同一个地址word,这显然不是什么你打算做.尝试将word附加内容复制es到副本:

strcpy(plural, word);
strcat(plural, "es");
Run Code Online (Sandbox Code Playgroud)

由于strcpy()返回复制的字符串(缓冲区),您可以将其放入strcat():

strcat(strcpy(plural, word), "es");
Run Code Online (Sandbox Code Playgroud)

虽然,我建议你不要在完全理解它是如何工作之前这样做.

  • @TchalyLeandreJr.您可以通过单击旁边的灰色勾号来接受您认为有用的答案. (2认同)