gpt4 book ai didi

c++ - 查字数?

转载 作者:太空宇宙 更新时间:2023-11-04 11:37:06 25 4
gpt4 key购买 nike

#include <iostream>
#include <string>

using namespace std;

int main()
{
string onesPlace[] = {"one", "two", "three", "four", "five", "six", "seven", "eight", "nine",};
string thoseCrazyTeens[] = {"ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen",};
string tensPlace[] = {"twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety",};

float userInput = 0;
bool flag = true;
cout << "Please input your check amount. " << endl;
while (flag == true)
{
cin >> userInput;
if (userInput > 100000)
{
cout << "That number is too big! Try again. " << endl;
flag = true;
}
else
{
flag = false;
}
}

int partOne = userInput;

return 0;
}

目前我正在开发这个程序,它接受用户输入(支票金额)并将其从数值转换为最大 100000 的单词。我想做的一个例子是 $344.67:

三百四十四和 67/100。

我已经得到了我需要的单词的字符串值(对于超过一定数量的值,稍后可能会出现成百和千),现在我正试图弄清楚如何获得小数点后的美分。如果我使用 mod,它并不总是准确的。

在那之后,有没有一种简单的方法可以在没有那么多 if 语句的情况下从 1 吹到 20?

最佳答案

要将字符串拆分成美元和美分,不要依赖像 int partOne = userInput 这样的代码。

一般来说,sscanf 是解析字符串的首选武器。这是一种 C 方法,但它比 C++ 替代方法更有效。

所以,像这样:

int dollars;
int cents;

int items = sscanf (userInput.c_str(), "$%d.%d", &dollars, &cents)

items 的值用于错误检测。我强烈建议检查它。

至于处理案例 1 到 20...一些 if 语句将是必要的,但它不应该是繁重的。只需开始编码并在编写过程中考虑您的算法。

关于c++ - 查字数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22723299/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com