V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
samuikwu
V2EX  ›  编程

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

  •  
  •   samuikwu · 2016-01-08 21:00:28 +08:00 · 3202 次点击
    这是一个创建于 3023 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    5 条回复    2016-01-08 23:10:35 +08:00
    billlee
        1
    billlee  
       2016-01-08 22:06:32 +08:00
    O(n) 是最优了,怎么说也要把每个字符测试一次
    ryd994
        2
    ryd994  
       2016-01-08 22:17:56 +08:00
    所以你是怎么写的呢?
    c742435
        3
    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
        4
    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
        5
    c742435  
       2016-01-08 23:10:35 +08:00
    上面的 *readP++; 改为
    *(readP++);
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3703 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 10:23 · PVG 18:23 · LAX 03:23 · JFK 06:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.