C语言 去除输入行首尾及单词之间多个连续空格

题目要求:

编写一个程序,删除每个输入行结尾的空格或制表符,并删除完全是空格的行。

根据这个要求,写了好几天,中间遇到各种问题,所以一怒之下,写了个增强版,把输入行首尾多余的空格删除,行中间多个连续的空格只保留一个。

只是完成了功能,代码毫无效率可言,具体代码如下:

由于空格在行尾时看不出效果,代码中使用了‘-’或‘=’代替了空格和制表符。

//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[
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值