1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
|
#include <iostream>
#include <string>
#include <fstream>
int main()
{
char alphabet[27] = {
'A',
'B',
'C',
'D',
'E',
'F',
'G',
'H',
'I',
'J',
'K',
'L',
'M',
'N',
'O',
'P',
'Q',
'R',
'S',
'T',
'U',
'V',
'W',
'X',
'Y',
'Z'};
std::string wordAlphabet[27];
// Open the file.
std::ifstream iFile;
iFile.open("icaoAlphabet.txt");
// Parse the file.
char currentLetter = 0;
unsigned short segmentIndex = 0;
char segmentHead = 0;
std::string segmentLoad;
while(iFile.good())
{
// Get the current letter.
currentLetter = iFile.get();
if (currentLetter == '\n') continue;
// Segment handling:
for (unsigned short index = 0; index != 27; ++index)
{
if (alphabet[index] == currentLetter) // Detect segments.
{
// Deal with the old segment.
if (segmentHead)
{
// Load the segment into array:
wordAlphabet[segmentIndex] = segmentLoad;
segmentLoad.clear();
}
// Start the new segment.
segmentIndex = index;
segmentHead = currentLetter;
break;
}
}
if (!segmentHead) return -1; // Error, file is bad.
// Segment loading.
segmentLoad += currentLetter;
}
std::cout << "Enter some capital letters to convert into words: ";
std::string input;
std::cin >> input;
std::cout << std::endl;
unsigned int dataLength = input.length();
char *data = new char [dataLength + 1];
data = (char*)input.c_str();
// Now we can try converting the letters into words:
for (unsigned int dataIndex = 0; dataIndex != dataLength; ++dataIndex)
{
for (unsigned short alphabetIndex = 0; alphabetIndex != 27; ++alphabetIndex)
{
if (alphabet[alphabetIndex] == data[dataIndex])
{
std::cout << wordAlphabet[alphabetIndex] << std::endl;
}
}
}
// And that's it!
std::cout << "\nProgram finished, press 'enter' to continue . . .\n";
std::cin.get();
return 0;
}
| |