注册 登录
编程论坛 C语言论坛

程序当中的t[j]=0是有什么用,为什么不加结果就出现乱码了

小白报道 发布于 2019-09-27 18:03, 1828 次点击
#include <stdio.h>
#include <string.h>

void fun(char  *s, char  t[])
{
    int i,j=0;
    for(i=0;i<strlen(s);i++)
        if(!((i%2)==0&&(s[i]%2==1)))
            t[j++]=s[i];
    t[j]=0;

}

void main()
{
  char   s[100], t[100];void NONO ();
  printf("\nPlease enter string S:"); scanf("%s", s);
  fun(s, t);
  printf("\nThe result is: %s\n", t);
  NONO();
}

void NONO ()
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
  char s[100], t[100] ;
  FILE *rf, *wf ;
  int i ;

  rf = fopen("in.dat","r") ;
  wf = fopen("out.dat","w") ;
  for(i = 0 ; i < 10 ; i++) {
    fscanf(rf, "%s", s) ;
    fun(s, t) ;
    fprintf(wf, "%s\n", t) ;
  }
  fclose(rf) ;
  fclose(wf) ;
}

4 回复
#2
rjsp2019-09-27 18:54
字符串以 '\0' 结尾
#3
小白报道2019-09-27 19:32
回复 2楼 rjsp
难道这里的\0可以直接写成0 吗 为什么啊
#4
NIALK2019-09-28 10:37
\0的ascll码是一样的,可以通用
#5
小白报道2019-09-28 11:32
回复 4楼 NIALK
哦哦   感谢感谢
1