首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

小白!字符与字符数组有关问题

2013-01-08 
小白求助!字符与字符数组问题在做《C程序设计语言》第二版的习题:编写一个程序,删除每个输入行末尾的空格及

小白求助!字符与字符数组问题
小白!字符与字符数组有关问题
在做《C程序设计语言》第二版的习题:编写一个程序,删除每个输入行末尾的空格及制表符,并删除完全是空格的行。不知道自己写得对不对,但运行出来,我输入4个a回车,居然有笑脸,那是什么呀?
#include<stdio.h>
#include<conio.h>
#define MAXLINE 1000
int getLine(char line[],int lim);
main(){
   int c,len;
   char line[MAXLINE];
   while((len=getLine(line,MAXLINE))>0)
   printf("%d,%s",len,line);
}

int getLine(char s[],int lim){
int c,i,j;
char ss[MAXLINE];
for(i=0;i<lim-1 && (c=getchar())!=EOF && c!='\n';++i)
   ss[i]=c;
if(c=='\n'){
--i;
  for(;ss[i]==' '|| ss[i]=='\t';--i)
  ;
  for(j=0;s[j]=ss[j]&&j<=i;++j)
  ;
  s[j]='\n';
  ++j;
  s[j]='\0';
}
return j;
}
[解决办法]
if(c=='\n'){
--i;
  for(;ss[i]==' '
[解决办法]
 ss[i]=='\t';--i)
  ;
  for(j=0;s[j]=ss[j]&&j<=i;++j)
  ;
  s[j]='\n';
  ++j;
  s[j]='\0';
}

改为

if(c=='\n'){
--i;
}

  for(;ss[i]==' '
[解决办法]
 ss[i]=='\t';--i);
  for(j=0;j<=i;++j) s[j]=ss[j];
  s[j]='\n';
  ++j;
  s[j]='\0';

[解决办法]
s[j]=ss[j]&&j<=i 与 s[j]=(ss[j]&&j<=i) 一样

热点排行