填空题 请补充函数fun(),该函数的功能是:依次取出字符串中所有的小写字母以形成新的字符串,并取代原字符串。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
#include<stdio.h>
#include<conio.h>
void fun(char *s)

int i=0;
char *p=s;
while( 【1】 )

if (*p>='a'&&*p<='z')

s[i]=*p;
【2】 ;

p++;

s[i]= 【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);


  • 1、
【正确答案】 1、[1] *p [2] i++ [3] '/0'    
【答案解析】[解析] 填空1:while循环的循环条件是指针p所指的字符不是'/0',也就是说,当处理到字符串最后的结束标记字符 '/0'时,while循环结束。填空2:如果指针p所指的字符为小写字母,则将这个字符存于原字符串s中,同时,下标自加1,为下一次存放做准备。填空3:在取出所有小写字母并存于原字符串s后,要注意在最后加上字符串结束标志符'/0'。