【发布时间】:2017-08-24 14:23:13
【问题描述】:
我想将一个字符转换为整数并计算它的频率,但我收到了这个错误!我正在使用 XCODE。
以 std::invalid_argument: stoi: no conversion 类型的未捕获异常终止。
#include <iostream>
int main(int argc, const char * argv[]) {
std::string s;
std::cin>>s;
int a[27];
for(int i=0;i<s.length();i++)
{
int c;
c=std::stoi(&s[i]);
a[c]++;
}
for(int i=0;i<27;i++)
std::cout<<a[i];
return 0;
}
【问题讨论】:
-
我很确定你不需要
stoi- 这里没有意义。预期的输入是什么? -
为什么要将字符串地址传递给
stoi? It takes aconstreference to a string -
@IgorTandetnik 输入将是一个字符串。
-
当然是字符串。一个包含什么字符的字符串呢?您的程序接受输入并产生输出 - 显示预期输入的示例,以及在给定输入的情况下程序预期产生的输出示例。
-
@IgorTandetnik 如果我输入“aaaaaabb”,则数组在 a[1] 处应具有值 6,在 a[2] 处具有值 2,将 1-26 视为按 a、b、c 顺序排列的字母。 ...z