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