问答题
请编写一个函数,函数的功能是删除字符串中的所有空格。例如,主函数中输入''asd afaa z67'',则输出为''asdafaaz67''。 注意:部分源程序在文件PROGl.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。1 #include<stdio.h>2 #include<ctype.h>3 void fun(char *str)4 {56 }7 main()8 {9 char str[81]; void NONO ();10 printf(''Input a string:'');11 gets(str);12 puts(str);13 fun(str);14 printf(''*** str: %s\n'',str);15 NONO();16 }17 void NONO()18 {19 /*请在此函数内打开文件,输入调试数据,调用fun函数,输出数据,关闭文件。*/20 char str[81];21 int n=0;22 FILE *rf,*wf;23 rf= fopen(''in.dat'',''r'');24 wf=fopen(''out.dat'',''w'');25 while(n<10) {26 fgets(str, 80, rf);27 fun(str);28 fprintf(wf,''%s'',str);29 n++;30 }31 fclose(rf);32 fclose(wf);33 }
【正确答案】正确答案:1 char *p=str; 2 int i=0; 3 while(*p){ 4 if(*p !=' ')str[i++]=*p; 5 p++; } 6 str[i]=0 ;
【答案解析】解析:该程序功能是删除字符串中的所有空格。本题的解题思路是首先利用一个指向字符串的指针,查找不是空格的字符,然后将不是空格的字符赋值到字符串,如果是空格,则跳过该字符,这样就实现了空格字符的删除。