char
C で文字列 (char 配列) から最初のものを削除するには、非常に安価なアルゴリズム (プロセッサとメモリ) を作成する必要があります。
私は現在使用しています:
char *newvalue = strdup(value+1);
free(value);
value = newvalue;
しかし、それを行うためのより安価な方法があれば知りたいです。文字列value
は動的に割り当てられます。
char
C で文字列 (char 配列) から最初のものを削除するには、非常に安価なアルゴリズム (プロセッサとメモリ) を作成する必要があります。
私は現在使用しています:
char *newvalue = strdup(value+1);
free(value);
value = newvalue;
しかし、それを行うためのより安価な方法があれば知りたいです。文字列value
は動的に割り当てられます。
value+1
char*
最初の文字が削除された文字列を表す です。そのような文字列を取得するための安価な方法です..
ただし、メモリを解放するときは、シフトされたポインターではなく元のポインターを解放するように注意する必要があります。
元の配列を再利用します。メモリ (デ) 割り当てとコピーの相対的な速度に応じて、高速になる場合とそうでない場合があります。
int size = strlen(value);
if (size > 0) memmove(value, value+1, size);