截断的 If 语句 C++(将字母转换为数字)
Truncated If Statement C++ (Turning letters to numbers)
我正在尝试将一系列字母更改为带有C++的数字,并从制作此代码开始。
但是,计算 digit1 变量的数学似乎永远不会被执行。
有什么想法吗?
#include <iostream>
#include <string>
using namespace std;
int main()
{
int qtyofnumbers, num, digit1, counter;
char letters, upperlower;
cout << "Enter a letter: ";
cin >> letters;
for (counter = 0; counter < 8; counter++)
{
if (counter == 3)
cout << "-";
num = static_cast<int>(letters) - static_cast<int>('A');
if (0 <= num && num < 26)
digit1 = (num / 3) + 2;
if (((num / 3 == 6 ) || (num / 3 == 7)) && (num % 3 == 0))
digit1 = digit1-1;
if (digit1 > 9)
digit1 = 9;
cin >> letters;
}
cout << digit1;
return 0;
}
我的猜测是问题出在您的输入中。您输入的是大写字母还是小写字母?它们的 ASCII 代码不同。因此,您可能希望将代码从
num= static_cast<int>(letters)-static_cast<int>('A');
到类似的东西
if (num >= 'a')
num = letters - 'a';
else
num = letters - 'A';
另外,正如@jtbandes所提到的,使用大括号{
和}
。空格不能确定C++的范围。即使它只针对 if 语句后面的一行代码,将来也会为您省去麻烦。
静态强制转换是必要的吗?我建议使用字符串流,或者只是使用 .at() 逐个字符遍历字符串并依靠 ascii 值进行转换。http://web.cs.mun.ca/~michael/c/ascii-table.html。
相关文章:
- 将数字转换为字母(例如:123 转换为一二三)
- 将数字转换为单词
- 使用if-else将数字转换为单词
- 将数字转换为填充字符串
- 函数在许多数字上转换为基数 1 时减去 2?
- 为什么将双精度转换为 int 似乎在第 16 位数字之后将其四舍五入?
- 如何将 UTF-8 文本从文件转换为某个可以迭代的容器,并检查每个符号是否为C++字母数字?
- 将 C 函数转换为 C++ 以检查数字是否有效
- 编译时间文本到数字转换 (atoi)
- 以C++格式将字符串转换为数字
- 在 c++ 中将数字转换为矢量数组的函数
- 奇怪的数字转换C++
- 我想使用 std::stoi 函数在 cpp 中将字符串转换为整数,因为我想在字符串中找到不同数字的总和(在下级酶中)
- 用C++将浮点数字转换为本地化字符串
- 我需要静态转换我的数字模板值吗
- 如何将boost::asio::ip::address_v6 ip转换为2个uint64_t数字,并从2个uint 64
- Rcpp - 用二进制函数转换数字向量?
- 我如何使用堆栈转换数字从基数10到基数2在c++
- 如何在c++中从字节数组中的整数转换数字
- c++程序转换数字的位数