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

处理字符串后面的空字符,删除全是空格行解决办法

2012-05-09 
处理字符串后面的空字符,删除全是空格行麻烦大家帮我看下这程序,为什么没有输出呢?#includestdio.h//处

处理字符串后面的空字符,删除全是空格行
麻烦大家帮我看下这程序,为什么没有输出呢?
#include<stdio.h> //处理字符串后面的空字符,删除全是空格行
#define MAXLINE 100  
int getlin(char s[], int lim);
int remov(char s[]);
int main()
{
  char line[MAXLINE];
  while(getlin(line, MAXLINE) > 0)
  if(remove(line) > 0)
  printf("%s", line);
  return 0;
}

int getlin(char s[], int lim) // 获取字符串
{
  int c, i = 0;
  while((c=getchar()) != EOF && c != '\n')
  s[i++] = c;
  if(c == '\n')  
  s[i++] = '\n'; 
  s[i] = '\0';
  return i;
}

int remov(char s[]) // 处理字符串后面的空字符
{
  int i = 0;
  while(s[i++] != '\n')
  ;
  i--;
  while(i >= 0 && (s[i] == ' ' || s[i] == '\t'))
  i--;
  if(i >= 0)
  {
  s[++i] = '\n';
  s[++i] = '\0';
  }
  return i;
}


[解决办法]
if (remove(line) > 0) ==> if (remov(line) > 0) // 你的自定义函数是remov,不是remove

另外,你的remov并没有达到去掉字符串最后的空格符的效果,再检查下吧。

[解决办法]
自定义函数名非要搞得和系统函数名相似,这回自己也搞错了吧

热点排行