未知的错误导致程序返回怪异的符号

unknown bug causing program to return weird symbols

本文关键字:符号 返回 错误 未知 程序      更新时间:2023-10-16

我写了一个非常基本的程序,将元音与输入字符串分开。该程序正在分开元音,但也返回怪异的符号/字母!

我真的找不到为什么会发生!帮助!

输出>>

aoeeox╘e⌡ó了

每次运行时都会生成不同的字母(?(!

代码>>

#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main(){
  string input = "stackoverflow";
  vector<char>  vowels = {'a','e','i','o','u'};
  vector<char> result;
  for(int i = 0 ; i < input.size() ; i++){
    for(int j = 0; j < vowels.size(); j++){
      if(input[i] == vowels[j]){
      result.push_back(input[i]);
      }
    }
      if (input[i] == 'u' || input[i] == 'e') {
        result.push_back(input[i]);
      }
  }
  for(int i = 0 ; i < input.size() ; i++){
    cout << result[i];
  }
  return 0 ;
}

您从非分配的内存中阅读。元音存储在结果矢量中,该矢量小于输入矢量。将打印循环更改为:

for(int i = 0 ; i < result.size() ; i++){
cout << result[i];