【发布时间】:2012-10-07 10:35:16
【问题描述】:
该练习要求提供一个代码,该代码可以将用户输入的数字 0-9 作为整数或字符串分别转换为字符串或整数,即如果输入0 "zero" 将被输出,反之亦然。
string number;
cout << "Let's convert strings to numbers."
<< "Enter value/string of 0-9";
while (number!= "exit")
{
cin >> number;
for (int i=0; i < digits.size(); i++)
{
if (number == digits[i]) cout << i << endl;
}
if (number == "0") cout << digits[0] << endl;
else if (number == "1") cout << digits[1] << endl;
else if (number == "2") cout << digits[2] << endl;
else if (number == "3") cout << digits[3] << endl;
else if (number == "4") cout << digits[4] << endl;
else if (number == "5") cout << digits[5] << endl;
else if (number == "6") cout << digits[6] << endl;
else if (number == "7") cout << digits[7] << endl;
else if (number == "8") cout << digits[8] << endl;
else if (number == "9") cout << digits[9] << endl;
}
digits 是一个向量类,用于存储字符串"zero"、"one" 等。
这段代码运行良好,但我不喜欢if/else if 语句的长链,但我无法找到将整数转换为字符串的方法。有人可以帮我提高效率吗?谢谢!
【问题讨论】:
-
“看起来不太好”可以是一个论据,但运行时效率不是。与 I/O 所花费的时间相比,您所做的任何事情都会很快。
标签: c++ string vector performance