干嘛不直接写'0'和'9'
#include <iostream>
#include <string>
using namespace std;
int main() {
string str;
int sum = 0;
getline(cin, str);
//此处可以这样写 ,由于题目中输入的是带空格的字符串,
//直接用cin遇到空格会结束输入,会出错,当然如果有问题,你反馈,我再给你另一种方式试试
for(int i = 0; i <str.size(); i++) {
if(str[i] >= '0' && str[i] <= '9') sum++;
}
cout << sum;
return 0;
}
有用记得采纳哟
```c++
#include<stdio.h>
#include<math.h>
using namespace std;
const int N = 254;
char str[N+1];
int main() {
int s=0;
gets(str);
for(int i=0;i<255;i++) {
if (str[i]>=48 && str[i]<=57) s++;
}
cout<<s<<endl;
return 0;
}
```
把 48 和 57 改成:
'48' 和 '57'
此处需要用字符格式,比较的是字符的ASCII码,而'48'的ASCII码并不是48,所以不正确