*1229 编写函数:清除字符串首尾的空白符 (Append Code)

Description

在C语言中,将ASCII字符集中的制表符(’\t’)、回车符(’\r’)、换行符(’\n’)、垂直制表符(’\v’)、换页符(’\f’)和空格字符(’ ')称作空白符。你的任务是读入每行字符串,去掉行首和行尾的连续空白符,但是在任意非空白符中间的空白符不要去除。


编写一个函数trim(),把一个串首尾的空白符清除掉:

原型:char * trim(char *s);

功能:去掉字符串s首尾的连续空白符,s中在任意非空白符中间的空白符不要去除,并将s的首地址返回。

函数的调用格式见“Append Code”。

Input

输入为多行,每行为一个串(不超过100个字符),至某行输入的非空白符仅为“END”结束。

Output

输出为多行,为每行输入的去掉前后空白符的串。“END”也输出。

Sample Input

abcdefg
12345678
XYZ
abc 123
END

Sample Output

abcdefg
12345678
XYZ
abc 123
END

HINT

下面这些说法都是一个意思:“返回一个字符串S”、“返回字符串S的指针”、“返回字符串S的首地址”。

Append Code

append.c,
在这里插入图片描述

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#define MAX_STR_LEN 120
char * trim(char *s)
{
    char a[MAX_STR_LEN];
    int i,j,k,n,len;
    n=strlen(s);
    for(i=0;isspace(s[i]);i++);
    k=i;//s[k]是第一个非空白符字符
    for(i=n-1;isspace(s[i]);i--);//s[i]是最后一个非空白符字符
    len=i-k;
    for(j=0;j<=len;j++)
    {
        a[j]=s[k+j];
    }
    a[j]='\0';
    strcpy(s,a);
    return s;
}

int main()
{
    char str[MAX_STR_LEN], *p;
    do
    {
        gets(str);
        p = trim(str);
        puts(p);
    } while(strcmp(p, "END"));
    return 0;
}

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值