如何在C语言中删除字符串的最后一部分

3

我正在编写一个C程序,目前遇到了问题。我不知道如何删除字符串的最后一部分。例如:

char str[100] = "one => two";

我想要删除=> two。你能帮我吗?谢谢。


您能提供更多的例子,以便我们可以找到一种通用解决方案吗? - rgajrawala
4个回答

4
如果您想删除特定char标记后的部分,请使用以下方法:
char str[100] = "one => two";
char *temp;
temp = strchr(str,'=');   //Get the pointer to char token
*temp = '\0';             //Replace token with null char

1

找到紧跟着"one"的空格位置,然后用'\0'替换它。


1
在C语言中,字符串的结尾用零字符标记。因此,您可以在正确的位置写入零来删除字符串的结尾:
str[3] = 0;

0
如果您的字符串的第一部分总是在“=”之前结束,并且假设它将始终具有“=”,那么您可以这样做:
int i = 0; 
char newstr [100];
while (str[i] != '='){
    i++;
}
strncpy (newstr,  str, i); //copy the i first characters from a char [] to a new char []
newstr [i] = 0;

记得包含 string.h 来使用 strncpy。

@rpattiso,我已经编辑好了,修复了反向问题,并在字符串末尾添加了一个空字节。感谢您指出这些问题! - Patrick Sava

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接