我写了一个程序,让用户输入一个字符.如果角色是元音,什么都不做; 如果角色是辅音,请找到字母表中最接近的元音.有没有简单的方法来做到这一点?
这就是我现在所拥有的:
char input, output;
cin >> input;
if (input == 'b'){ output = 'a'; }
else if (input == 'c'){ output = 'a'; }
else if (input == 'd'){ output = 'e'; }
else if (input == 'f'){ output = 'e'; }
else if (input == 'g'){ output = 'e'; }
else if (input == 'h'){ output = 'i'; }
else if (input == 'j'){ output = 'i'; }
else if (input == 'k'){ output = 'i'; }
else if (input == 'l'){ output = 'i'; }
else if (input == 'm'){ output = 'o'; }
else if (input == 'n'){ output = 'o'; }
else if (input == 'p'){ output = 'o'; }
else if (input == 'q'){ output = 'o'; }
else if (input == 'r'){ output = 'o'; }
else if (input == 's'){ output = 'u'; }
else if (input == 't'){ output = 'u'; }
else if (input == 'v'){ output = 'u'; }
else if (input == 'w'){ output = 'u'; }
else if (input == 'x'){ output = 'u'; }
else if (input == 'y'){ output = 'u'; }
else if (input == 'z'){ output = 'u'; }
Run Code Online (Sandbox Code Playgroud)
有更简单的方法吗?
eml*_*lai 10
你也可以使用一个数组:
const char nearestVowels[26] = "aaaeeeeiiiiioooooouuuuuyyy";
// abcdefghijklmnopqrstuvwxyz
Run Code Online (Sandbox Code Playgroud)
然后你可以简单地这样做:
output = nearestVowels[input - 'a'];
Run Code Online (Sandbox Code Playgroud)