【发布时间】:2016-05-02 15:51:25
【问题描述】:
所以我在玩strchr 以从文件中获取部分字符串:
void manipulateComputers(char *name)
{
name[strlen(name)-2] = '\0';
printf("%s\n", name);
char *ptr = strchr(name, ' ');
printf("%s\n", ptr);
}
在第一个printf 上写着:
zelda 1 flux 1 hydra 1 willow 1 swift 1 aeon 1 neptune 1
在第二个printf 上写着:
1 flux 1 hydra 1 willow 1 swift 1 aeon 1 neptune 1
如您所见,zelda 不见了,这正是我想做的。我想删除zelda,但现在我想使用zelda。
基本上,我希望第二个printf 只打印zelda 而不是没有zelda 的字符串。
我如何获得zelda 以最终将其传递给另一个函数。谢谢
【问题讨论】:
-
很多方法。但这取决于您希望如何返回该值。即,修改
name缓冲区,使其仅包含所需的字符串或分配动态内存,复制所需的字符串并返回?如果您可以修改name,那么只需在strchr调用之后添加以下内容:*ptr='\0'; printf("%s\n", name);(省略错误检查)。