char *の末尾からcharを削除するにはどうすればよいですか?私は「123456ABC」を持っていて、「123456」が欲しいです。ありがとう!
質問する
2229 次
3 に答える
6
要素の 1 つを null 文字に設定できます。文字列 "123456ABC" を "123456" に切り詰めたいとします。
str[6] = '\0';
しかし、残りの文字列にはまだメモリが割り当てられています。おそらくやりたいことは、新しい文字列を作成し、古い文字列の必要な部分をそれにコピーしてから、古い文字列を削除することです。
于 2012-10-09T01:16:09.763 に答える
1
char * string は '\0' で終了します。
char c[] = "123456ABC";
c[6] = '\0';
于 2012-10-09T01:16:28.013 に答える
1
必要な残りの文字列の長さ length がある場合は、str [ length]='\0'を設定して、次のようにします。
// Assuming str was obtained through malloc/realloc functions.
str = realloc(str, sizeof(char)*(1+length));
このようにして、最適化したい場合に備えて、概念的な文字列とそれが使用するメモリを短縮します!
編集: 私の最初の提案で問題を提起してくれた Jim Balter に感謝します!
于 2012-10-09T01:30:48.467 に答える