【发布时间】:2015-11-24 14:25:09
【问题描述】:
我刚开始使用 c++ 并正在尝试编写一个程序,该程序接受一个单词并将字母转换为与其在字母表中的位置相匹配的整数(由点分隔),例如你好-> 8.5.12.12.15(希望我猜对了;))
我写了一个小程序,但它似乎不起作用。如果我输入一个字母,那么输出是正确的,但是如果我输入多个字母,它就会崩溃。
这是代码:
#include "stdafx.h"
#include <iostream>
#include <string>
int convert(std::string* a, int i)
{
int b;
if (a[i] == "a") { b = 1; return b;}
else if (a[i] == "b") { b = 2; return b;}
else if (a[i] == "c") { b = 3; return b;}
else if (a[i] == "d") { b = 4; return b;}
else if (a[i] == "e") { b = 5; return b;}
else if (a[i] == "f") { b = 6; return b;}
else if (a[i] == "g") { b = 7; return b;}
else if (a[i] == "h") { b = 8; return b;}
else if (a[i] == "i") { b = 9; return b;}
else if (a[i] == "j") { b = 10; return b;}
else if (a[i] == "k") { b = 11; return b;}
else if (a[i] == "l") { b = 12; return b;}
else if (a[i] == "m") { b = 13; return b;}
else if (a[i] == "n") { b = 14; return b;}
else if (a[i] == "o") { b = 15; return b;}
else if (a[i] == "p") { b = 16; return b;}
else if (a[i] == "q") { b = 17; return b;}
else if (a[i] == "r") { b = 18; return b;}
else if (a[i] == "s") { b = 19; return b;}
else if (a[i] == "t") { b = 20; return b;}
else if (a[i] == "u") { b = 21; return b;}
else if (a[i] == "v") { b = 22; return b;}
else if (a[i] == "w") { b = 23; return b;}
else if (a[i] == "x") { b = 24; return b;}
else if (a[i] == "y") { b = 25; return b;}
else if (a[i] == "z") { b = 26; return b;}
}
int main()
{
std::string* a = new std::string;
std::string out;
std::cout << "Please enter a word: ";
std::cin >> *a;
int i = 0;
do
{
out += std::to_string(convert(a, i)) + ".";
i++;
} while (i < a->size());
std::cout << "The converted word is: " << out << std::endl;
return 0;
}
我在这里不知所措,希望你能帮助我......
提前致谢,
卡图尔
[编辑] 固定代码
【问题讨论】:
标签: c++ string word letters alphabet