每当我编译程序时,我都会收到一个错误:警告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)
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)
虽然,我建议你不要在完全理解它是如何工作之前这样做.