【问题标题】:Set a string to a substring in C将字符串设置为C中的子字符串
【发布时间】:2011-05-04 23:31:55
【问题描述】:

我有一个很长的字符串,我想把它去掉。我想摆脱字符“

char *end;
end = strchr(mystring, '<');
mystring[strlen(mystring) - strlen(end)] = '\0';

如果我的字符串是

"asdfjk234klsjadflnwer023jokmnasdf</tag>alskjdflk23<tag2>akjsldfjsdf</tag2>blabla"

这段代码会返回

"asdfjk234klsjadflnwer023jokmnasdf"

我想知道这是否可以以更简单的方式完成?我知道我可以在 mystring 中的每个字符上增加一个计数器,直到找到“

感谢任何帮助!

【问题讨论】:

    标签: c string parsing truncate


    【解决方案1】:

    当然。这是惯用的做法:

    char *end;
    end = strchr(mystring, '<');
    if (end)
        *end = '\0';
    

    【讨论】:

      【解决方案2】:

      *end = '\0'; 而不是mystring[strlen... 部分呢?

      【讨论】:

        【解决方案3】:
        char *end;
        end = strchr(mystring, '<');
        if (end != NULL)
            *end = '\0';
        

        【讨论】:

          【解决方案4】:

          strchr() 返回一个指向字符的指针(如果找到的话),所以:

          if(end)
              *end = '\0';
          

          【讨论】:

            猜你喜欢
            • 2016-06-28
            • 2013-04-01
            • 2011-05-27
            • 2014-02-16
            • 1970-01-01
            • 2013-12-05
            • 2017-11-05
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多