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

0 c string parsing truncate

我有一个很长的字符串,我想要删除它.我希望摆脱字符"<"(包含)之后的所有内容.这是有效的代码:

char *end;
end = strchr(mystring, '<');
mystring[strlen(mystring) - strlen(end)] = '\0';
Run Code Online (Sandbox Code Playgroud)

所以,如果mystring是

"asdfjk234klsjadflnwer023jokmnasdf</tag>alskjdflk23<tag2>akjsldfjsdf</tag2>blabla"
Run Code Online (Sandbox Code Playgroud)

这段代码会回来

"asdfjk234klsjadflnwer023jokmnasdf"
Run Code Online (Sandbox Code Playgroud)

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

任何帮助表示赞赏!

caf*_*caf 5

当然.这是执行它的惯用方法:

char *end;
end = strchr(mystring, '<');
if (end)
    *end = '\0';
Run Code Online (Sandbox Code Playgroud)