全部问题 > 当前问题

我的为什么不行啊

#include <stdio.h>

#include <ctype.h>


void fun(char *str)

{

int i,j=0;

for(i=0;i<strlen(str);i++)

if(str[i]=' ')

{

str[j++]=str[i];

}

str[j]=0;

}


main()

{

  char str[81];void NONO ();


  printf("Input a string:") ;

  gets(str);

  puts(str);

  fun(str);

  printf("*** str: %s\n",str);

  NONO();

}


void NONO ()

{

/* 请在此函数内打开文件,输入调试数据,调用 fun 函数,

   输出数据,关闭文件。 */

  char str[81];

  int n = 0;

  FILE *rf, *wf ;


  rf = fopen("in.dat","r") ;

  wf = fopen("out.dat","w") ;

  while(n < 10) {

    fgets(str, 80, rf);

    fun(str);

    fprintf(wf, "%s", str) ;

    n++ ;

  }

  fclose(rf) ;

  fclose(wf) ;

}


Cinderalla 2017-8-25 21:25:26

共 2 个回答

qqq 2017-8-30 17:34:32

if(str[i]=' ')

{

str[j++]=str[i];

}

这啥意思?保留空格吗?就算保留空格你也得写==啊。。题目要删除空格,应该写!=表示不等于空格时才保留。

啊啊啊Awhen 2017-9-14 01:16:45

回复 qqq

void fun(char *str)

{

int i,j=0,n;

char *b;

n=strlen(str);

for(i=0;i<n;i++)

{

if(str[i]!=' ')

b[j++]=str[i];

}

b[j]=0;

   strcpy(*str,*b);

老师我和他写得差不多怎么不对啊!!!


问题来自: 编程题真题