配列の最初の3文字をライブラリなしで削除する必要があります。これをどうやってやりますか?私はmemmove
を使用できることを知っていますが、私は標準ライブラリなしのシステムで作業しています。memmove
はポインタ用です。文字列の最初の数文字を削除します
void chopN(char *str, size_t n)
{
assert(n != 0 && str != 0);
size_t len = strlen(str);
if (n > len)
return; // Or: n = len;
memmove(str, str+n, len - n + 1);
}
をしかし、私はmemmove
または任意の他の標準ライブラリ関数なしで配列から文字を削除できます。memmove
で、私はthisを行うことができますか?
「削除」するとメモリを解放しますか?もし出力されていなければ、ポインタは新しい開始点を指しています。つまり、str + = 3です。 –
@Ur Mom strlenを使用できますか? –
注: 'assert(n!= 0 && str!= 0)'に 'n!= 0'を書く必要はありません。 – chux