所以我用 strchr
从文件中获取字符串的一部分:
void manipulateComputers(char *name)
{
name[strlen(name)-2] = '\0';
printf("%s\n", name);
char *ptr = strchr(name, ' ');
printf("%s\n", ptr);
}
在第一个 printf
中,它显示:
塞尔达 1 通量 1 九头蛇 1 柳树 1 迅捷 1 永恒 1 海王星 1
在第二个 printf
处,内容如下:
1 通量 1 九头蛇 1 柳树 1 迅捷 1 永恒 1 海王星 1
如您所见,zelda
消失了,这正是我想做的。我想删除 zelda
,但现在我想使用 zelda
。
本质上,我希望第二个 printf
只打印 zelda
而不是没有 zelda
的字符串。
我如何获得zelda
并最终将其传递给另一个函数。谢谢
最佳答案
你没有失去塞尔达
;指针name
仍然指向它。
您可以使用(以及其他技术)打印zelda
:
int z_len = ptr - name;
printf("Zelda was here: %*.*s\n", z_len, z_len, name);
与许多替代技术相比,该技术的优点是原始字符串仍然完整 - 未修改。这意味着当字符串是 const 字符串(例如字符串文字)时它也可以工作。
关于c - Strchr 删除我想要的部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35007819/