gpt4 book ai didi

c - 如何从C中的字符串中删除多余的空格

转载 作者:太空宇宙 更新时间:2023-11-04 07:35:11 25 4
gpt4 key购买 nike

我有一个带有额外空格的字符串,例如:

char * s = "  foo    baa       ";

我想把它转换成:

foo baa

我写了这个函数:

void trim (char ** src)
{
char * p = strdup(* src);
char * ret = malloc(strlen(*src) + 1);
assert(ret != NULL);
char * token;
token = strtok(p, " \t");
while( NULL != token ) {
while (*token) {
*(ret ++) = *(token ++);
}
token = strtok(NULL, " \t");
}

printf("ret = %s\n", ret);
}

但它从 ret 变量值中为我提供了一个空字符串。有人可能会指出我的错误吗?提前致谢。

最佳答案

您正在递增 ret,存储原始地址或使用下标访问 ret 的不同字符。

    // snip
char * ret = malloc(strlen(*src) + 1);
assert(ret != NULL);
char * ret_start = ret;
//snap
printf("ret_start = %s\n", ret_start);

关于c - 如何从C中的字符串中删除多余的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9674259/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com