题目要求:
编写一个程序,删除每个输入行结尾的空格或制表符,并删除完全是空格的行。
根据这个要求,写了好几天,中间遇到各种问题,所以一怒之下,写了个增强版,把输入行首尾多余的空格删除,行中间多个连续的空格只保留一个。
只是完成了功能,代码毫无效率可言,具体代码如下:
由于空格在行尾时看不出效果,代码中使用了‘-’或‘=’代替了空格和制表符。
//1_18 写一个程序能够删除行末的空格和制表符和完全是空格的行。
//结果中由于空格并不显示,看不出效果,所以本例中使用'-'表示空格,'='表示\t水平制表符.
#define MAXCHAR 128
int getline(char s[], int lim)
{
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 get_str_lastc_index(char from[],int len) {
int index;
for (int i = 0; i < len; i++) {
if (from[i] >= 65 && from[i] <= 90 || from[