[英]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.