如何找到最接近的元音?

ʇol*_*qoq 4 c++

我写了一个程序,让用户输入一个字符.如果角色是元音,什么都不做; 如果角色是辅音,请找到字母表中最接近的元音.有没有简单的方法来做到这一点?

这就是我现在所拥有的:

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)

  • 这很好...... (2认同)
  • 到目前为止最美的解决方案! (2认同)