gpt4 book ai didi

c - 如何从字符字符串(位于字符字符串数组中)中删除最后一个字符

转载 作者:行者123 更新时间:2023-11-30 16:54:01 26 4
gpt4 key购买 nike

因此,我一直在尝试从字符串中删除最后一个字符,该字符位于字符串数组中。我已经进行了一些搜索,但没有找到解决方案。我尝试过 memcpy 或 strcpy n-1 个字节的实现,但没有成功。

这是我想做的事情的要点

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

我想创建一个新的字符数组并让它保存“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 数组分配空内存。

确保在离开您的范围之前释放(新)

关于c - 如何从字符字符串(位于字符字符串数组中)中删除最后一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40668593/

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