我是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;
}

===============>>#1 票数:0 已采纳

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

用1代替第二个i,1是字符数或要返回的长度

  ask by user3281388 translate from so

未解决问题?本站智能推荐:

3回复

在类中使用C ++返回子字符串

所以我有一个子字符串函数,它接受子字符串的开始位置及其长度。 这样,它应该提取其中的字符并将其作为字符串返回,而不实际使用任何字符串函数。 这是我的子字符串函数: 使用main.cpp文件中的以下代码: 它返回: 请输入两个字符串。 每个字符串必须少于256个字
2回复

替换字符串C ++中的子字符串

我想替换字符串中的子字符串 ,例如:字符串是aa0_a a1_b b3_c * a0_a,所以我想用b1_a替换子字符串a0_a,但是我不希望aa0_a被替换。 基本上,在子字符串“ a0_a”(要替换)之前和之后都不应出现字母。
1回复

从C ++中的C字符串获取子字符串

我有C弦 我需要从字符串值名称(即“ test”)中提取一个单独的变量。 因此,我需要找到“&name =“与下一个&
1回复

替换C ++中给定字符串的子字符串

我有一个代码来替换给定字符串的子字符串的内容。 它没有按我预期的那样工作。 根据我的理解,s3.find(“ they”)将返回6。由于pos与string :: npos不同,因此从位置6开始,s3中的2个字符将替换为字符串s4。 因此,s3将是“ boey又来了!” 更换后。
1回复

C ++字符串使用std lib中的find_first_of函数检查子字符串

我想使用C ++ lib中的find_first_of函数来检查字符串是否包含某个子字符串,其结果与我期望的不完全相同。 我有下面的代码 当我调试此代码时,代码会进入if范围,这意味着它从位置“ 0”找到了匹配的子字符串。 请问这是api如何工作? 我想我可能在这里错过了一些东
3回复

如何在C ++中获取子字符串并在字符串之间添加字符

我有一个字符串Hello foo你好吗? 我想将它改为Hello \\ r \\ n \\ n \\ n \\ n \\ n \\ n \\ n \\ n \\ n \\ n \\ n \\ n \\ n \\ n \\ n \\ n \\ n \\ n \\ n \\ n \\ n \\
1回复

从符号之间的字符串中获取子字符串// C ++ Builder

我有以下任务的问题。 我需要将其他程序的输出txt数据加载到我的程序中,并搜索以下字符串: “ zhi”:97.92716217041016, 尤其是数值(97.92 ...)。 “,”符号是其他导出值之间的分隔符。 我试图通过以下方式在C ++ Builder中处理该问题
3回复

在字符串C ++中查找子字符串(在“hello”中找到“el”)

好的,所以我一直在寻找一种可以帮助我在子字符串中找到字符串的算法。 我之前使用的代码来自一个类似的问题,但它没有这样做。 这不会在字符串“hello”上返回“el”的起始索引,我无法弄明白。 编辑:好的,让我向您展示一些代码,包括一些现实生活中的示例:我正在尝试分析一个字符串,该
3回复

在C ++中以递归方式获取子字符串的索引以字符串开头

给定功能: 如果有substring ,我如何找到mystring的索引? 我不想使用默认的find函数,我想自己做(在C ++中)。 如果存在该子字符串,我的find方法将返回true。 到目前为止,我有以下想法:
2回复

从字符串C ++中提取子字符串

我有一个带有GCode命令的文本文件。 当我遇到特定命令时,我想用新命令在其后放置新行。 这部分不是问题。 我的问题是该命令具有以下格式G0/G1 Xnnn Ynnn Znnn ,其中X / Y / Z参数可能存在或不存在(至少需要一个,但不是全部)。 我想要的是X / Y / Z之后的