用scanf计算无符号整数?

时间:2013-10-28 23:49:19

标签: c scanf

我正在尝试使用scanf读取输入。我想计算输入中的所有数字。所以例如输入:0,1,2 3 4-5-67应该给8.我不太确定如何去做。任何帮助将不胜感激。

感谢

2 个答案:

答案 0 :(得分:0)

您可以使用scanf%c进行循环播放。然后检查字符是否为整数。如果是,则递增计数器,否则什么都不做。

答案 1 :(得分:0)

以下是一种方法:

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>

int main(){
    char input[50];
    int i=0;
    int totalNum=0;


    printf("Enter input : ");
    fgets(input,sizeof(input),stdin); // get the whole input in one go ( much better than scanf )
    input[strlen(input)] = '\0'; //to get rid of \n and convert the whole input into a string

    for(i=0;i<strlen(input);i++){
        if(isdigit(input[i])!=0){ // built in function to check is a character is a number .. make sure you include ctype.h
               totalNum++;
        }
    }

    printf("Total numbers in the input  = %d\n",totalNum);

    return 0;
}

<强>输出:

Sukhvir@Sukhvir-PC ~
$ gcc -Werror -g -o test test.c

Sukhvir@Sukhvir-PC ~
$ ./test
Enter input : 12.3.567'4 45
Total numbers in the input  = 9