提高项目30.6-删除字符串前面的空格

来源:互联网 发布:振华重工 知乎 编辑:程序博客网 时间:2024/06/06 10:04

任务和代码:去除句子中第一个单词前的空格,返回去除了空格的字符串

/*文件名:main.c作者:小风景完成日期:2016.7.11问题描述:去除句子中第一个单词前的空格,返回去除了空格的字符串程序输出:*/#include <stdio.h>void ptrim(char *str);int main(void){    char s[81]="     Some spaces before the first word.    ";    printf("原句子:\"%s\"\n", s);    ptrim(s);    printf("去除前导空格后为:\"%s\"\n", s);    return 0;}void ptrim(char *str){    char *p = NULL;    p = str;    //将字符串前面的所有空格跳过    while(*p == ' ')    {        p++;    }    //跳过空格后,将字符串复制进入str中,覆盖先前的字符    while(*p != '\0')    {        *(str++) = *(p++);   //需要注意    }    //当需要覆盖的字符串覆盖完毕后,输入结束符表示结束,输出时到结束符为止    *str = '\0';}

程序运行结果:



总结:在while字符串复制时需要注意指针p++,如果指针p不进行移动,则while循环会变为死循环,直到写满字符串的空间,非法对其他空间操作。

0 0
原创粉丝点击