请选择 进入手机版 | 继续访问电脑版
贠老师培训群:150322713    贠老师QQ:767708506

贠老师office培训-excel学习网

 找回密码
 立即注册
点击咨询贠老师
查看: 187|回复: 7

[C语言] C语言中删去字符串头部空格的方法

[复制链接]

3172

主题

3269

帖子

2万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
22893
发表于 2015-12-24 22:42:42 | 显示全部楼层 |阅读模式
C语言没有提供可删去字符串头部空格的标准库函数,但是,编写这样的一个函数是很方便的。请看下例;
#include <stdio. h>
#include <string. h>
void main(void);
char *  ltrim (char * ) ;
char * rtrim(char * ) ;
void main (void)
{
    char * lead_str = " This string has leading spaces in it. " ;,
    / * Show the status of the string before calling the Itrim()
        function. * /
    printf("Before calling Itrim(), lead-str is '%s'\n", lead_str);
    printf("and has a length of %d. \n" , strlen(lead_str));
    / * Call the Itrim() function to remove the leading blanks. * /.
        Itrim(lead_str);
    / * Show the status of the string
        after calling the Itrim() function. * /
    prinft("After calling Itrim(), lead_str is '%s'\n", lead_str);
    print("and has a length of %d. \n'' , strlen(lead-str)) ;
}
/ * The Itrim() function removes leading spaces from a string. * /

char * ltrim(char * str)
{
    strrev(str) ; / * Call strrevO to reverse the string. * /
    rtrim(str)). /* Call rtrimO to remvoe the "trailing" spaces. * /
    strrev(str); / * Restore the string's original order. * /
    return str ; / * Return a pointer to the string. * /.
}
/ * The rtrim() function removes trailing spaces from a string. * /

char* rtrim(char* str)
{
    int n = strlen (str)-l ; / * Start at the character BEFORE
    the null character (\0). * /
    while (n>0) / * Make sure we don't go out of bounds... * /.
    {
        if ( * (str+n) ! =' ') If we find a nonspace character: * /
        {
            * (str+n + 1) = '\0' ; / * Put the null character at one
            character past our current
            position. * /
            break;j / * Break out of the loop. * /
        }
        else / * Otherwise, keep moving backward in the string. * /
            n --;
    }
    return  str;    /*  Return a pointer tO the string.  */
}

在上例中,删去字符串头部空格的工作是由用户编写的ltrim()函数完成的,该函数调用了·6.2的例子中的rtrim()函数和标准C库函数strrev()。ltrim()函数首先调用strrev()函数将字符串颠倒一次,然后调用rtrim()函数删去字符串尾部的空格,最后调用strrev()函数将字符串再颠倒一次,其结果实际上就是删去原字符串头部的空格。
回复

使用道具 举报

0

主题

766

帖子

772

积分

高级会员

Rank: 4

积分
772
发表于 2015-12-26 17:46:37 | 显示全部楼层
我是路过的,轻轻飘过
回复 支持 反对

使用道具 举报

1

主题

1050

帖子

69

积分

注册会员

Rank: 2

积分
69
发表于 2016-1-10 11:07:43 | 显示全部楼层
希望楼主能够收集更多的资料,谢谢了!
回复 支持 反对

使用道具 举报

4

主题

1044

帖子

195

积分

注册会员

Rank: 2

积分
195
发表于 2016-1-19 21:08:03 | 显示全部楼层
顶顶
回复 支持 反对

使用道具 举报

2

主题

978

帖子

83

积分

注册会员

Rank: 2

积分
83
发表于 2016-2-15 09:00:46 | 显示全部楼层
写的不错,支持一下哟
回复 支持 反对

使用道具 举报

2

主题

968

帖子

108

积分

注册会员

Rank: 2

积分
108
发表于 2016-6-1 13:38:05 | 显示全部楼层
写的不错,支持一下哟
回复 支持 反对

使用道具 举报

1

主题

929

帖子

20

积分

注册会员

Rank: 2

积分
20
发表于 2018-7-27 17:01:31 | 显示全部楼层
好东西一定要看看!
回复 支持 反对

使用道具 举报

4

主题

1044

帖子

195

积分

注册会员

Rank: 2

积分
195
发表于 2018-12-4 10:20:29 | 显示全部楼层
赞赞
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



陕ICP备15003731号  

贠老师培训 GMT+8, 2018-12-19 22:04 , Processed in 0.218265 second(s), 31 queries .

快速回复 返回顶部 返回列表