高手帮我解释一下这段代码!!多谢~~

usr_src 2009-07-14 11:54:27
215 char *
216 stripwhite (string)
217 char *string;
218 {
219 register char *s, *t;
220
221 for (s = string; whitespace (*s); s++)
222 ;
223
224 if (*s == 0)
225 return (s);
226
227 t = s + strlen (s) - 1;
228 while (t > s && whitespace (*t))
229 t--;
230 *++t = '\0';
231
232 return s;
233 }
...全文
90 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
liao05050075 2009-07-14
  • 打赏
  • 举报
回复
把t指向目前这个字符串的最后一个字符。
usr_src 2009-07-14
  • 打赏
  • 举报
回复
哦!!原来如此啊 ~~!多谢高人!!
t = s + strlen (s) - 1;
那这句话又作何解呢?麻烦高人了!!!
liao05050075 2009-07-14
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 usr_src 的回复:]
这下清晰了~~!多谢高人!!不过还有个小小的疑问:
for (s = string; whitespace (*s); s++)
;

这句话循环的内容是什么啊???
[/Quote]
这个for没有循环体。
等同于
s=string;
while(whitespace(*s)) s++;
usr_src 2009-07-14
  • 打赏
  • 举报
回复
这下清晰了~~!多谢高人!!不过还有个小小的疑问:
for (s = string; whitespace (*s); s++)
;

这句话循环的内容是什么啊???
DarkChampion 2009-07-14
  • 打赏
  • 举报
回复
for (s = string; whitespace (*s); s++)
;

s指针向后移,直到第一个非空格字符


if (*s == 0)
return (s);
如果字符串结束,就返回

t = s + strlen (s) - 1;
while (t > s && whitespace (*t))
t--;
*++t = '\0'
从后向前,直到第一个非空格字符
usr_src 2009-07-14
  • 打赏
  • 举报
回复
每一步是怎么实现的??麻烦高手讲解~~!!多谢~~!
DarkChampion 2009-07-14
  • 打赏
  • 举报
回复
Trim的功能,去前后空格
nadoo 2009-07-14
  • 打赏
  • 举报
回复
去字符串前后空格
usr_src 2009-07-14
  • 打赏
  • 举报
回复
这下更加清楚了~~!多谢高人指点啊!!~

69,382

社区成员

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

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