0

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

谢谢

4

2 回答 2

0

您可以使用scanf%cfor 格式进行循环。然后检查字符是否为整数。如果是,则增加计数器,否则什么也不做。

于 2013-10-28T23:52:56.403 回答
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
于 2013-10-29T00:10:53.420 回答