问答题 请补充函数fun(),该函数的功能是:只保留字符串中的大写字母,删除其他字符,结果仍保存在原来的字符串中,由全局变量m对删除后字符串的长度进行保存。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
#include<stdio.h>
#include<conio.h>
int m;
void fun(char*s)

int i=0,j=0;
char *p=s;
while(*(p+i))

if(*(p+i)>='A'&&*(p+i)<='Z')

(1)

(2)

s[j]='/0';
(3)

main()

char str[80];
clrscr();
printf("/nEnter a string:");
gets(str);
printf("/n/nThe string is:/%s/n",str);
fun(str);
printf("/n/nThe string of changing is: /%s/n",str);
printf("/n/nThe length of changed strtng is:/%d/n",m);


【正确答案】(1)s[j++]=*(p+i) (2)i++ (3)m=j
【答案解析】[解析] 填空1:将大写字母存于原字符串中,数组下标j自加1,为下一次存放做准备。填空2:为了判断字符串中的下一个字符是否为大写字母,变量i自加1。填空3:最后将大写字母的个数,即删除后字符串的长度赋给全局变量m。