【问题标题】:C++ Return Vowels in String using subStringC++ 使用 subString 返回字符串中的元音
【发布时间】:2014-04-20 00:14:57
【问题描述】:

我是 C++ 新手...我正在尝试创建一个函数,它接收一个字符串并只返回字符串中的元音。我需要使用子字符串来执行此操作。如果我使用一个只有 1 个元音的单词,则该函数可以正常运行……但是我已经测试了其他一些字符串,但它不起作用。你们有什么建议吗?非常感谢!

#include <iostream>
using namespace std;
string vowel_search(string str)
{
    string test = str;
    string result = "";
    for (int i = 0; i < test.length(); i++)
    {
        if (str[i] == 'a' || str[i] == 'A'||
            str[i] == 'e' || str[i] == 'E' ||
            str[i]== 'i'|| str[i] == 'I' ||
            str[i] == 'o' || str[i] == 'O' ||
            str[i] == 'u' || str[i] == 'U')
        {
          result += test.substr(i, i);
        }
     }
     return result;
}
int main() {
string strWord = "Aaron";
string str1 = vowel_search(strWord);
cout << str1 << endl; // prints out: aon

string strWord1 = "Harry";
string str2 = vowel_search(strWord1);
cout << str2 << endl; //prints out: a -- Correct

string strSentence = "Harry is Funny";
string str3 = vowel_search(strSentence);
cout << str3 << endl; //prints out: ais Fununny

return 0;
}

【问题讨论】:

  • result += test.substr(i, 1); 将第二个 i 替换为 1
  • 哇——你真是个天才!有用! :) 非常感谢!你能简要解释一下 1 是如何工作的吗?再次感谢!
  • y 不被认为是元音吗?
  • 1 是子串的长度。否则,您每次都会占用 i 个字符。为什么它会给出一些奇怪的输出,我不太确定,可能是 i 值的巧合。发布解决方案作为接受的答案。
  • @chnossos 只是偶尔,可能不是为了他的任务。

标签: c++ string substring


【解决方案1】:

result += test.substr(i, 1);

将第二个 i 替换为 1,1 是您要返回的字符数或长度

【讨论】:

  • 非常感谢@Pinkfloydx33!我已将此标记为答案。我也会给你一些向上的箭头,但我需要 15 的声望才能做到这一点!感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 2021-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多