C - 与CHAR合作以及如何将其转换为整数(具有点的极端情况号)
C++ - working with char and how convert them to integer (extreme case number with a point)
我有一系列字符,我想将字符带入其中(它们是数字(,并且仅获得与整数相同的数字,而不是作为字符。
例如:
'1','2','3','5';
while(...){
num+= check - '0';
...
}
但最终我得到的是11
,因为我将它们全部连接起来。我如何获得int number = 1235
;
,如果我有dot 12.123
的号码,我该怎么办?
谢谢!
首先,您需要了解数字添加和字符串串联之间的区别。
是的,在C 中,+
运算符都用于两者(我们称该操作员过载(。但这并不意味着这是同一回事。在您的示例中,您正在从char
数字中减去字符'0'
的序数,这确实为您提供了数字代表的数值。您将这些加起来,以11。
如果要将数字串联到字符串中,则需要1/创建字符串,然后将数字加成2。当您使用字符串的+
操作员时,编译器将进行串联而不是数字添加。
这样的东西:
#include <iostream>
#include <string>
int main(int argc, char * const argv[]) {
char a[] = {'1', '2', '3', '5'};
int num = 0;
std::string str;
for (char c : a) {
num += c - '0';
str += c;
}
std::cout << "num == " << num << std::endl;
std::cout << "str == " << str << std::endl;
return 0;
}
相关文章:
- 在 c++ 中连接字符串和整数,以便在 C++ 11 不支持计算机的情况下读取多个文件
- 如何在不给它任何类型(如整数)的情况下定义某物?
- 如何在不违反C++核心准则的情况下将整数强制转换为void*
- 整数指针与字符指针的情况下悬空指针
- 如何对 int 变量应用验证,使其仅接受整数数据,并且在任何其他数据的情况下不会出错?
- 如何在没有整数溢出的情况下找到n%(k*k)
- C - 与CHAR合作以及如何将其转换为整数(具有点的极端情况号)
- 如何在不中断剩余代码的情况下仅C++中输入整数
- 如何避免字符串到整数转换情况下的无效参数异常
- 如何在给定任意数量的整数的情况下创建一个唯一键?并使用该键存储,然后从地图中查找
- 如何在不使用对象的情况下连接字符串、整数和浮点数
- 对于特定情况的整数溢出似乎是由整数溢出引起的错误
- 默认情况下,决定整数类型是唱歌或无符号的类型
- 如何在不使用循环的情况下将低字节和高字节的字符数组转换为它们的整数数组
- g++ 在不使用 -Wconvert 的情况下将 double/float 转换为无符号整数时发出警告
- 在给定变量为有限整数的情况下,如何让C++程序求解输入值的变量
- 如果我们在需要整数的开关情况下输入字符会发生什么
- 在不违反约束的情况下生成整数数组
- 如何在没有多余整数的情况下填充整数之间的分隔符
- vsnprintf程序在%s设置为整数的情况下崩溃