c - 将字符串设置为C中的子字符串

标签 c string parsing truncate

我有一个很长的字符串,我想把它的末端去掉。我想摆脱字符“<”(包括)之后的所有内容。这是有效的代码:

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

所以如果 mystring 是

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

这段代码会返回

"asdfjk234klsjadflnwer023jokmnasdf"

我想知道这是否可以通过更简单的方式完成?我知道我可以对 mystring 中的每个字符增加一个计数器,直到找到“<”,然后使用该 int 作为索引,但这似乎同样麻烦。所有其他内置字符串库似乎都没有用,但我确定我只是以错误的方式看待它。我已经很多年没有使用 C 了。

感谢任何帮助!

最佳答案

当然。这是惯用的方法:

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

关于c - 将字符串设置为C中的子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5891050/

相关文章:

php - 如何从 MS Word (.DOC) 文件获取摘要信息?

arrays - 将某些内容添加到链接列表时,列表中的其他项目采用最后添加的项目的名称

c++ - 解析 C++ "The instruction at "x""y"处的引用内存

python - 计算 Python 中标点字符之间的单词数

在 Windows 上将 valgrind 与 CLion 一起使用时,Clion 无法找到项目可执行文件

c - 查找所有连接到网络的计算机并获取它们的 IP 地址 - Windows C

java - 解析路径以获取所需名称

javascript - 使用 Javascript 解析文本

c++ - 如何在 MPI(openMPI 应用程序)中获取后端传输类型/配置?

regex - 用于句子中介词的 Python 正则表达式