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