完善程序 · 答案 || j++j=j+1++jjs[i] · 考点:输入输出、位运算、分支结构、循环结构、字符串(string)
← 整套速查表 NOIP 普及组初赛 全部真题完善程序: (数字删除) 下面程序的功能是将字符串中的数字字符删除后输出。请填空。(每空 3 分,共 12 分)
#include <iostream>
using namespace std;
int delnum( char *s )
{
int i, j;
j = 0;
for ( i = 0; s[i] != '\0'; i++ )
if ( s[i] < '0' ① s[i] > '9' )
{
s[j] = s[i];
②;
}
return(③);
}
const int SIZE = 30;
int main()
{
char s[SIZE];
int len, i;
cin.getline( s, sizeof(s) );
len = delnum( s );
for ( i = 0; i < len; i++ )
cout << ④;
cout << endl;
return(0);
}双指针删字符:非数字保留,数字跳过,返回新长度
①漏写||导致非数字被删;②j++漏写或写j=i导致错位;④循环填s[i]易误以为要填其他(实则正确)
考点:双指针|字符串处理
函数遍历字符串,将非数字字符前移,返回新长度;main 按该长度打印。