在C中将Char *设置为Char的Trim

时间:2016-11-10 16:55:52

标签: c pointers trim calloc

让我们看看这个例子:

char var1[100] = "test    ";
char* var2;

如果我这样做:

var2 = &var1;

我会用空格来获取它。

我希望var2成为var1的修剪。

2 个答案:

答案 0 :(得分:0)

据我所知,如果不改变原始字符串或将该字符串的修改版本复制到新来源,就无法做到这一点。

正如pm100所说,你可以找到指向该字符串中第一个空格实例的指针,然后从源指针和该指针获取距离以找到空白的索引。完成后,只需使用strncpy将字符串的该部分复制到新指针。确保分配新指针将终止字符' \ 0'最后。

另一种解决方案是简单地再次使用strchr,因为pm100说,但这次改变了指针指向' \ 0'。

答案 1 :(得分:0)

快速

var2 = strdup(var1);
char * idx = strchr(var2, ' ');
if(idx) *idx = 0;