请编写一个函数,用来删除字符串中的所有空格。 例如:输入asd af aa z67,则输出为asdafaz67。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

admin2010-05-05  24

问题 请编写一个函数,用来删除字符串中的所有空格。
   例如:输入asd af aa z67,则输出为asdafaz67。
   注意:部分源程序给出如下。
   请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
   试题程序:
   #include<stdio.h>
   #include<ctype.h>
   #include<conio.h>

   int fun(char*str)
   {

   }
   main()
   {
    char str[81];
    int n;
    clrscr();
    printf("Input a string:");
    gets(str);
    puts(str);
    fun(str);
    printf("***  Str:  %s\n",str);
   }

选项

答案int fun(char *str) { int i,j=0; for(i=0;str[i]!=’\0’; i++) if(str[i]!=’’) /*将字符串中的空格删去*/ str[j++]=str[i]; /*注意该程序中空格字符的表达方法*/ str[j]=’\0’; /*在字符串最后加上结束标记符*/ }

解析 前面我们接触到的题是删除字符,但本题要求删除所有空格,即除了空格以外的其他所有字符都要留下。由于 C语言中没有直接删除字符的操作,所以我们对于删除字符的操作都是采用“留下”字符的算法,以前的题目亦是如此。用 str从串头到串尾逐一走动,每走到一个字符都判断其是否为空格,若不是空格(注意在if()的单引号之间有一个空格),则将其保存str[j]中。注意j的下标变化、初值及最后加串结束符’\0’。
转载请注明原文地址:https://kaotiyun.com/show/WHID777K
0

相关试题推荐
最新回复(0)