【发布时间】:2020-05-11 19:24:23
【问题描述】:
所以我正在制作一个小程序。您输入一个字符串然后我的程序输出该字符串,除了a是辅音现在是“C”而元音是“V”。为什么当我输入时它输出错误“ Elicopter”或者其他词?
#include <iostream>
#include <string>
using namespace std;
int main()
{
const char con[]={'b','c','d','f','g','h','i','j','k','l','m','n','p','q','r','s','t','v','w','x','y','z','B','C','D','F','G','H','I','J','K','L','M','N','P','Q','R','S','T','V','W','X','Y','Z'};
const char vow[]={'a','e','i','o','u','A','E','I','O','U'};
const char car[]={'!','@','#','$','%','^','&','*','?','+','-','_','0','1','2','3','4','5','6','7','8','9'};
int scon=sizeof(con)/sizeof(con[0]);
int svow=sizeof(vow)/sizeof(vow[0]);
int scar=sizeof(car)/sizeof(car[0]);
string x;
int i,j;
getline(cin,x);
for(i=0;i<x.length();i++){
if(x[i]==' '){
cout<<" ";
}
else{
for(j=0;j<scon;j++){
if(x[i]==con[j]){
cout<<"C";
break;
}
}
for(j=0;j<svow;j++){
if(x[i]==vow[j]){
cout<<"V";
break;
}
}
for(j=0;j<scar;j++){
if(x[i]==car[j]){
cout<<x[i];
break;
}
}
}
}
return 0;
}
对不起,我的代码一团糟。
【问题讨论】:
-
您在
con和vow中都有'i'。 -
欢迎来到 Stack Overflow 和一般编程。我们都编写了无法按照我们想要的方式工作的代码。要找出问题需要调试。 This article 有一些很棒的提示可以帮助您入门。使用这些技巧,你可以找到你的代码没有达到你期望的地方。
-
这真的很需要
std::vector,而不是用sizeof做数学并猜测有多少个整数。