本文介绍了如何从字符串中删除多余的空格用C的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有有一个多余的空格串的字符串,例如:
I have an string that have an extra spaces string, for example:
char * s = " foo baa ";
我想这CONVER为:
I want to conver it to:
富咩
我已经写了这个功能:
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
变量值一个空字符串。可能有人会指出我的错误?提前致谢。
but it given for me an empty string from ret
variable value. someone may point out my mistake? thanks in advance.
推荐答案
正在递增 RET
在你的同时,存储原始地址或使用下标来访问不同的字符 RET
。
You are incrementing ret
in your while, store the original address or use subscript to access different chars of ret
.
// snip
char * ret = malloc(strlen(*src) + 1);
assert(ret != NULL);
char * ret_start = ret;
//snap
printf("ret_start = %s\n", ret_start);
这篇关于如何从字符串中删除多余的空格用C的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!