删除多余的空白
程序员文章站
2022-07-14 08:40:40
...
删除行末的空格及制表符,并删除全是空格的行:
#include <stdio.h>
#define MAXLINE 1000 /* maximum input line length */
int mygetline ( char line[], int maxline );
int myremove ( char s[] );
int main ( void ) {
int len; /* current line length */
int length; /* remove returns length */
char line[MAXLINE]; /* current input line */
while ( ( len = mygetline ( line, MAXLINE ) ) > 0 ) {
if ( ( length = myremove ( line ) ) > 0 ) {
printf ( "%s", line );
}
}
return 0;
}
int mygetline ( char s[], int lim ) { /* read a line into s, return length */
int c, i;
for ( i = 0; i < lim - 1 && ( c = getchar() ) != EOF && c != '\n'; ++i ) {
s[i] = c;
}
if ( c == '\n' ) {
s[i] = c;
++i;
}
s[i] = '\0';
return i;
}
int myremove ( char s[] ) { /* 从字符串s中去掉结尾的空格符及制表符,并返回处理后的字符串长度 */
int i;
i = 0;
while ( s[i] != '\n' ) { /* 到达行末 */
++i;
}
--i; /* 回退一个字符,当前i指向“/n”的前一个字符 */
while ( i >= 0 && ( s[i] == ' ' || s[i] == '\t' ) ) {
--i;
}
if ( i >= 0 ) { /* 至少含有一个字符 */
++i;
s[i] = '\n'; /* 重新组织为一个新行 */
++i;
s[i] = '\0'; /* 结束存储的字符串 */
}
return i;
}
上一篇: WPF DataGrid 去掉空白列
下一篇: Java设计模式——单例设计模式