c - Strchr 删除我想要的部分

标签 c string strchr

所以我用 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/

相关文章:

C 编程 - 按位运算符并了解何时使用

c - GNU make 的回溯

c - 如何使用双向链表向前、向后排序并输出到文件

c - SSE intrinsic over int16[8] 提取每个元素的符号

jquery 检查 URL 是否有查询字符串

c++ - 检查 string.at(i) 是否为空白 C++

c语言strchr段错误字符替换

c++ - 如何将无符号字符数组解析为数值数据

c - strchr 在 C 中不工作

C 解析带换行符的逗号分隔值