我正在尝试使用 scanf 读取输入。我想计算输入中的所有数字。因此,例如输入:0, 1, 2 3 4-5-67 应该给出 8。我不太确定该怎么做。任何帮助,将不胜感激。
谢谢
您可以使用scanf
和%c
for 格式进行循环。然后检查字符是否为整数。如果是,则增加计数器,否则什么也不做。
这是执行此操作的一种方法:
#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