写一个rtrim()函数,消除字符串后面的空格字符

qq_33341459 2015-12-18 11:06:37
这应该怎么写,不懂得运用rtrim函数
...全文
932 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
paschen 2015-12-19
  • 打赏
  • 举报
回复

void rtrim(char * str)
{
	while(*str++);
	--str;
	while(*--str == ' ');
	++str;
	*str = '\0';
}

int main()
{

	char str[100] = "12345     ";
	rtrim(str);
	//此时str为12345
	re
paschen 2015-12-19
  • 打赏
  • 举报
回复

void rtrim(char * str)
{
	while(*str++);
	--str;
	while(*--str == ' ');
	++str;
	*str = '\0';
}

int main()
{

	char str[100] = "12345     ";
	rtrim(str);
	//此时str为12345
	return 0;
} 
qq_33341459 2015-12-19
  • 打赏
  • 举报
回复 1
就是在字符串后面打一堆空格,要用rtrim函数消除掉空格
flying_music 2015-12-19
  • 打赏
  • 举报
回复
输入格式是什么啊,一个char*吗? 有没有长度n啊 ?空格只出现在最后面吗?
qq_33341459 2015-12-19
  • 打赏
  • 举报
回复
厉害,多谢
paschen 2015-12-19
  • 打赏
  • 举报
回复
引用 7 楼 qq_33341459 的回复:
字符串要自己输入,然后按回车运行的呀。 这样只是消除了最后的回车吧

void rtrim(char * str)
{
	while(*str++);
	--str;
	while(1)
	{
		char ch;
		ch = *--str;
		if(ch != ' ' && ch != '\r' && ch != '\n' && ch != '\t')
			break;
	}
	++str;
	*str = '\0';
}
这样把字符串结尾的空格 \r \n \t都清除
均陵鼠侠 2015-12-19
  • 打赏
  • 举报
回复
字符串有单字节字符串、多字节字符串和宽字符串。前两种里的空格都是' ',后一种是L' ' 没说清是哪一种,叫我们怎么搞。
qq_33341459 2015-12-19
  • 打赏
  • 举报
回复
字符串要自己输入,然后按回车运行的呀。 这样只是消除了最后的回车吧
paschen 2015-12-19
  • 打赏
  • 举报
回复
引用 5 楼 qq_33341459 的回复:
这应该怎么改?
猜测你接收到的最后不是空格,而是'\n'字符
qq_33341459 2015-12-19
  • 打赏
  • 举报
回复
这应该怎么改?

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧