如何使用 c++ 将数字字符转换为字符串
How to convert digit character to string using c++
这是我的代码:
#include <iostream>
#include <string>
#include <sstream>
int main() {
std::string userInput;
std::getline(std::cin, userInput);
int sum;
int result;
std::string numDigit;
bool space = true;
for (int i = 0; i < userInput.length(); i++) {
if (isdigit(userInput[i]) && space) {
numDigit += userInput[i];
space = false;
}else if(isdigit(userInput[i]) && !space) {
numDigit += userInput[i];
}else if (!isdigit(userInput[i]) && !space) {
std::stringstream(numDigit) >> result;
sum += result;
numDigit = "";
result = 0;
space = true;
}
std::cout << sum;
}
}
如果我用空格输入 1 2 3,它应该输出总和 = 6,但它输出许多数字为什么会这样?(对不起,我是 c++ 的初学者(
您正在使用变量 sum 和 result,而无需初始化它们。
使用任何编译器时,不能假定变量将自动初始化为零。因此,如果您使用未初始化的变量,则程序的行为将是未定义的,您想要的值可能很好,或者它将填充垃圾值,如80123901723012,-190283812791等...
int sum = 0;
int result = 0;
声明一个变量并将其初始化为零始终是一种很好的做法。
编辑:
您的代码遇到的问题是:
1.您应该只在 for 循环结束后输出sum
。
2.您应该检查i <= userInput.length()
而不是检查小于。
修改后的代码:
#include <iostream>
#include <string>
#include <sstream>
int main() {
std::string userInput;
std::getline(std::cin, userInput);
int sum = 0;
int result = 0;
std::string numDigit = "";
bool space = true;
for (int i = 0; i <= userInput.length(); i++) {
if (isdigit(userInput[i]) && space) {
numDigit += userInput[i];
space = false;
}
else if (isdigit(userInput[i]) && !space) {
numDigit += userInput[i];
}
else if (!isdigit(userInput[i]) && !space) {
std::stringstream(numDigit) >> result;
sum += result;
numDigit = "";
result = 0;
space = true;
}
}
std::cout << "sum = " << sum << std::endl;
}
<小时 />感谢您指出我的错误皮特,我已经对我的帖子进行了更正。
相关文章:
- wcstombs_s(),转换字符串的长度
- 使用 CStringW/CStringA 和 CT2W/CT2A 转换字符串有什么区别?
- 无法转换字符串插入函数的参数
- 转换字符串向量:基于先前的值跳过元素
- 从中间器转换字符串不起作用,出了什么问题?
- 失败的证明转换字符串到枚举类
- 如何使用正则表达式和提升转换迭代器标记和转换 c 字符串
- 使用java jni时转换字符串类型
- 如何避免在转换字符串令牌流时重复istringstream构造
- 阿托伊未正确转换字符串
- C++,转换字符串,使连续下划线序列变为单个下划线
- 使用长算术转换字符串
- 转换字符串十进制数时的精度
- 将词法转换字符串提升为双精度
- 使用marshal_as函数转换字符串的性能
- C++不会从数据转换字符串
- 无论如何,在c++ /Qt中转换字符串到结构中的字段
- C++ 隐式类型转换字符串 -> int?
- 转换字符串到浮点数,c++实现
- 用于转换字符串大小写的函数