gpt4 book ai didi

字符串中的 C++ 元音,禁止比较

转载 作者:太空宇宙 更新时间:2023-11-04 15:18:30 27 4
gpt4 key购买 nike

我正在尝试计算字符串中元音的总数。我正在使用 strlen 来获取字符串的总长度,但是当我尝试按每个字母对字符串进行计数时,它说 C++ 禁止比较。所以我假设我的 if 语句有问题。

#include <iostream>
#include <cstring>
using namespace std;


int main() {

char sentence[] = "";
int count;
int total;
int length;
int lengthcount;
int output;
output = 0;
length = 0;
count = 0;
total = 0;
cin >> total;

while (total != count){
cin >> sentence;
length = strlen(sentence);
while (length != lengthcount)
if (sentence[length] == "a" ||sentence[length] == "e"||sentence[length] == "i"||sentence[length] == "o"||sentence[length] == "u"||sentence[length] == "y"){
++ output;
++ lengthcount;
else{
++lengthcount;
}
}
++count;
}

return 0;
}

最佳答案

sentence[length] 是一个字符。它应该与 'a' 而不是 "a" 进行比较。

"a" 是一个字符数组,不支持与内置的operator== 直接比较。

sentence[index] == 'a'; // where index is probably lengthcount in your example

应该可以解决问题。如果使用 std::string 是一个选项,那么您应该优先使用 char 数组。

此外,您的 char sentence[] = ""; 将需要比 '\0' 字符更多的空间。一些替代方案包括使用 std::stringstd::getlinechar[nnn]cin.get(。 ..) 以确保您不会超出分配的缓冲区。

关于字符串中的 C++ 元音,禁止比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25741779/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com