首页 文章

如何从一个非常大的C字符串中提取所有数字?

提问于
浏览
0

我有一个非常大的数字文件,不适合int数据类型 . 我的任务是获取大数字的每个数字,并将其分配给链接列表中的自己的节点 . 我还需要在文件中一次读取2个大数字,文件中的每个数字用换行符分隔 .

到目前为止,我将其用于测试目的:

inFile.open("file.txt");
    inFile >> bigNumber;
    for(const auto &c : bigNumber) {
         cout << c << endl;
    }

这打印正确的值,但问题是它是一个字符,我不能添加或乘以这个数字 . 如何从字符串中提取每个单独的数字作为int?

我也被告知这可以使用stringstream,但我不知道这些对象是如何工作的?如果可能的话,我非常愿意采用更好/更清洁的方法来完成上述任务 .

1 回答

  • 2

    取决于你想做什么:

    要将值读作ascii代码,您可以使用

    char c = 'a';
    int i = (int) a; 
    /* note that the int cast is not necessary -- int i = a would suffice */
    

    要转换字符'0' - > 0,'1' - > 1等,您可以编写

    char c = '4';
    int i = a - '0';
    /* check here if i is bounded by 0 and 9 */
    

相关问题