Online Compiler C

#include <stdio.h> #include <string.h> int main() { char str[200]; gets(str); int p = strlen(str); int num = 0; for(int i = 0;i < p;i++) { if(str[i] >= '1' && str[i] <= '9') {num ++;} } printf("%d",num); return 0; }
这段代码的功能是:读取一行字符串,然后统计其中数字字符('1'到'9')的个数,并输出这个数量。

- 代码中使用了 `gets(str)` 来读取输入,但 `gets` 函数是不安全的,因为它不会检查输入长度是否超过数组大小,容易导致缓冲区溢出。建议考虑使用更安全的输入函数。
- 循环条件中 `i < p` 是正确的,但注意 `strlen` 返回的是字符串长度,不包括结尾的 `'\0'`,所以循环能正确遍历所有字符。
- 判断条件 `str[i] >= '1' && str[i] <= '9'` 只统计了数字1到9,没有包含数字0。如果题目要求统计所有数字字符(包括0),需要修改这个条件。