gpt4 book ai didi

c++ - 如何确定一个字符是否为元音

转载 作者:行者123 更新时间:2023-11-27 23:01:12 24 4
gpt4 key购买 nike

我正在尝试使用 vector[].substr() 但我不知道这是否可行。有谁知道另一种方法来做到这一点?我的目标是取一个 vector 中的词并将其与第一个元音分开。任何帮助表示赞赏。我的代码看起来像:

#include <iostream>
#include "derrick_math.h"
#include <string>
#include <sstream>
#include <vector>
#include <cctype>
#include <algorithm>
using namespace std;

int main()
{
string phrase;
string ay = "ay";
vector<string> vec;
cout << "Please enter the word or phrase to translate: ";
getline(cin, phrase);

istringstream iss(phrase);
copy(istream_iterator<string>(iss),
istream_iterator<string>(),
back_inserter(vec));
for (int i = 0; i < vec.size(); i++)
{
if (vec[i].substr(0, 1) == "a || e || i || o || u || A || E || I || O || U")
{
cout << vec[i] << "ay";
}
if (vec[i].substr(1, 1) == "a || e || i || o || u || A || E || I || O || U")
{
cout << vec[i].substr(2) << vec[i].substr(0, 1) << "ay";
}
if (vec[i].substr(2, 1) == "a || e || i || o || u || A || E || I || O || U")
{
cout << vec[i].substr(3), vec[i].substr(0, 2) + "ay";
}
if (vec[i].substr(3, 1) == "a || e || i || o || u || A || E || I || O || U")
{
cout << vec[i].substr(4), vec[i].substr(0, 3) + ay;
}
cout << vec[i] << " ";
}
cout << endl;
system("pause");
return 0;

最佳答案

访问 vector 元素的成员函数不是您的问题。您的 if 语句格式错误。目前您正在将子字符串与一个长字符串进行比较,在这种情况下永远不会计算为真。

如果你想检查一个特定的字符,你需要这样的东西:

bool is_vowel(char c) {
c = tolower(c);
return c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u';
}

或者...

bool is_vowel(char c) {
switch(tolower(c)) {
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
return true;
default:
return false;
}
}

现在你可以这样调用你的函数了:

std::string s = vec[i];
if(is_vowel(s[n])) {
// the third character is a vowel
}

您的代码还有其他一些问题。这一行:

cout << vec[i].substr(4), vec[i].substr(0, 3) + ay;

应该是:

// no comma operator
cout << vec[i].substr(4) << vec[i].substr(0, 3) + ay;

要将项目添加到 vector 的末尾,您只需要:

vec.push_back(s);

关于c++ - 如何确定一个字符是否为元音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27480478/

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