繁体   English   中英

如何从字符字符串数组中的字符字符串中删除最后一个字符

[英]How to remove the last character from a char string, which is in an array of char strings

因此,我一直在尝试从字符串(位于字符串数组中)中删除最后一个字符。 我已经做了一些搜索,没有找到任何解决方案的运气。 我尝试了memcpy或strcpy n-1个字节的实现,但尚未解决。

这是我要做什么的要点

char *array[3];
array[0] = "avg:";

我想创建一个新的char数组,并将其保存为“ avg”。

我以为我可以做这样的事情,

char *array[3];
array[0] = "avg:";

char new[sizeof(array[0])-1];
strncpy(new,array[0],sizeof(new));

但这会产生一些时髦的输出,即“avg¤ã@À‡¿”。 任何帮助,将不胜感激。

您没有正确终止副本,您的字符串应始终以'\\ 0'结尾。

我会做:

char *array[3];
array[0] = "avg:";

char *new = (char *) calloc(strlen(array[0]),sizeof(char));
strncpy(new,array[0],strlen(array[0])-1);

因为内存分配将始终为您的char数组分配空内存。

在退出示波器之前,请确保您已free(new)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM