Самая большая проблема, с которой вы сталкиваетесь, заключается в том, что вы меняете значение word
каждый раз, когда назначаете фонетическое значение ИКАО, например, word = "Alpha";
Вам нужно использовать отдельное значение для построения строки результата, например,
//Declare needed variables
string word = " ", phonetic {};
unsigned count = 0;
...
while(count < word.length())
{
switch (word[count])
{
case 'A': case 'a': phonetic += " Alpha";
break;
case 'B': case 'b': phonetic += " Bravo";
break;
...
( примечание: изменение на unsigned
для count
для предотвращения сравнения значений со знаком и без знака, а также использование +=
для добавления каждого фонетического слова к phonetic
- как а также пробел, добавленный перед каждым)
Теперь, когда фонетический результат ИКАО хранится в phonetic
, вы можете вывести результат:
cout << "Phoenetic version is:" << phonetic << endl;
В целом, вы можете сделать:
#include <iostream>
using namespace std;
int main (void)
{
//Declare needed variables
string word = " ", phonetic {};
unsigned count = 0;
//Prompt user input
cout << "Enter a word: ";
cin >> word;
while(count < word.length())
{
switch (word[count])
{
case 'A': case 'a': phonetic += " Alpha";
break;
case 'B': case 'b': phonetic += " Bravo";
break;
case 'C': case 'c': phonetic += " Charlie";
break;
case 'D': case 'd': phonetic += " Delta";
break;
case 'E': case 'e': phonetic += " Echo";
break;
case 'F': case 'f': phonetic += " Foxtrot";
break;
case 'G': case 'g': phonetic += " Golf";
break;
case 'H': case 'h': phonetic += " Hotel";
break;
case 'I': case 'i': phonetic += " Indiana";
break;
case 'J': case 'j': phonetic += " Juliet";
break;
case 'K': case 'k': phonetic += " Kilo";
break;
case 'L': case 'l': phonetic += " Lima";
break;
case 'M': case 'm': phonetic += " Mike";
break;
case 'N': case 'n': phonetic += " November";
break;
case 'O': case 'o': phonetic += " Oscar";
break;
case 'P': case 'p': phonetic += " Papa";
break;
case 'Q': case 'q': phonetic += " Quebec";
break;
case 'R': case 'r': phonetic += " Romeo";
break;
case 'S': case 's': phonetic += " Sierra";
break;
case 'T': case 't': phonetic += " Tango";
break;
case 'U': case 'u': phonetic += " Uniform";
break;
case 'V': case 'v': phonetic += " Victor";
break;
case 'W': case 'w': phonetic += " Whiskey";
break;
case 'X': case 'x': phonetic += " X-Ray";
break;
case 'Y': case 'y': phonetic += " Yankee";
break;
case 'Z': case 'z': phonetic += " Zulu";
break;
default: cout << "You did not enter a letter." << endl;
}
count++;
}
cout << "Phoenetic version is:" << phonetic << endl;
return 0;
}
( примечание: рассмотрите возможность использования word.at(count)
вместо word[count]
для включения проверки границ при индексировании отдельных символов - здесь вы в безопасности с word.length()
, но в целом .at()
обеспечивает, что дополнительный уровень проверки)
Пример использования / Вывод
$ ./bin/icaophonetic
Enter a word: apple
Phoenetic version is: Alpha Papa Papa Lima Echo
Посмотрите это и дайте мне знать, если у вас есть вопросы.