c - 字符串中包含的数字之和

标签 c arrays string

给定一个文本文件,例如:

cdcd dcdaqw cdcd KKAN 89 bxb hqhq1bhA
100uuz
cnkx


 n jk xjx100mc
...
.+1+

我想找到各个字符串中包含的所有数字的总和: 在给定的示例中,我想求和 89 100 1 100 1。

我对此做了很多尝试(IE,每个字符串的 fscanf 并尝试将 int 值保存在数组中),但都失败了。

最佳答案

所以这相当简单。在文件中的每个位置,我们都会询问“这里有数字吗?”。如果有的话,打印出来。如果没有尝试从下一个字符开始。

根据我们对 fscanf() 工作原理的理解,我们最多将每个字符测试两次。

代码

#include <stdio.h>
#include <stdbool.h>

int main() {
    FILE * fd = fopen("in.txt", "r");

    while (true) {
        unsigned number;
        int rc = fscanf(fd, "%u", &number);
        if (rc == EOF)
            break;
        else if (rc == 0)
            fseek(fd, 1, SEEK_CUR);
        else if (rc == 1)
            printf("%u\n", number);
    }
}

输入文件

cdcd dcdaqw cdcd KKAN 89 bxb hqhq1bhA
100uuz
cnkx

 n jk xjx100mc
...
.+1+

输出

89
1
100
100
1

后续步骤

如何扩展它来报告总和而不是数字本身应该是相当明显的。

关于c - 字符串中包含的数字之和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28990245/

相关文章:

python - 根据条件从列表的数据框列中计算和删除元素

c - K&R 4.2 书中的 atof()

将这种十六进制字符串转换为 NSData/NSString

Java 二维数组的有效声明

java String.split(regex) 设计

ruby - 来自文件的整数数组

c - c中struct中的多维数组引用

服务器向客户端发送消息时android native Binder 崩溃

c# - while循环用数组填充datagridview

arrays - 如何将静态数组转换为动态数组?