您的位置:首页 > 编程语言 > C语言/C++

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

2016-07-11 21:53 357 查看
任务和代码:去除句子中第一个单词前的空格,返回去除了空格的字符串

/*
文件名: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循环会变为死循环,直到写满字符串的空间,非法对其他空间操作。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C语言 代码 函数