处理字符串后面的空字符,删除全是空格行
麻烦大家帮我看下这程序,为什么没有输出呢?
#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并没有达到去掉字符串最后的空格符的效果,再检查下吧。
[解决办法]
自定义函数名非要搞得和系统函数名相似,这回自己也搞错了吧