串信相比,不兼容的参数
问题描述:
我在使用这段代码的麻烦:串信相比,不兼容的参数
char myword[] = "ABC\0";
// for loop for length of array
for (int i = 0; i<strlen(myword); i++) {
if (strcmp(myword[i], 'A') == 0) {...
应该检查是否是我的信件等于A.是否尝试过进入ABC不同字母但错误:
Error: Argument of type "char" is incompatible with parameter of type "const char *" in "main.cpp"
不断出现。
答
strcmp()
函数比较字符串,而不是个别字符。您可以比较使用内置==
操作字符:
char myword[] = "ABC"; // (1)
// for loop for length of array
for (int i = 0; i<strlen(myword); i++) {
if (myword[i] == 'A') { ... }
}
顺便说一句,有没有需要手动添加就行空终止(1) - 语言将增加这个给你。
答
if (strcmp(myword[i], 'A') == 0) {
strcmp
是有比较字符串,而不是单个字符。只是尝试直接比较字符,即
if (myword[i] == 'A') {
C不是C++ - 不要垃圾标签。请发布[MCVE]。 –
您的字符串长度为5个字符,并带有两个'\ 0'字符。我猜这不是你想到的。 – chris
您正在使用strcmp来比较单个字符。 strcmp用于比较字符的数组或字符串 –