( 请教 C 函数)去掉字符串里面的换行符,如何才是最优雅的写法

2016-01-08 21:00:28 +08:00
 samuikwu

如题,
读取游标的一个字段,但是这个字段是前台人员录入的,各种乱打回车。
生成报表时候各种错位。
于是用 for 循环写了一个,但是感觉效率很低
一直在思考如何写的优雅的一点。
求赐教。

3286 次点击
所在节点    编程
5 条回复
billlee
2016-01-08 22:06:32 +08:00
O(n) 是最优了,怎么说也要把每个字符测试一次
ryd994
2016-01-08 22:17:56 +08:00
所以你是怎么写的呢?
c742435
2016-01-08 23:04:44 +08:00
很久不写 C ,语法都忘了
while(readP < length)
{
char temp = str[readP++];
if(temp != '\n' && temp != '\r')
str[writeP++] = temp;
}
c742435
2016-01-08 23:09:44 +08:00
char* readP = str;
char* writeP = str;
do
{
char temp = *readP++;
if(temp != '\n' && temp != '\r')
*(writeP++) = temp;
}while(temp)
c742435
2016-01-08 23:10:35 +08:00
上面的 *readP++; 改为
*(readP++);

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/249392

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX