2016-09-12 21 views
-4

文字列の途中に文字を挿入するにはどうすればいいですか?例えば 、私は任意の組み込み関数は、このためにありますCの文字列の途中に文字を挿入するには?

aa = "C:\\\\Users\\\\Ruby\\\\Desktop"; 

にそれを変更したい

char aa = "C:\\Users\\Ruby\\Desktop"; 

がありますか?いいえ、どうすればいいですか?ありがとう。

+7

これは無効です。 –

+0

コードをコンパイルして有効であることを確認します。少なくとも2つの理由からそうではありません。 – chux

+0

@Alter Mann 'char a [64] =" C:\ Users \ Ruby \ Desktop "; 'は有効なCコードではありません。 (興味深いエスケープシーケンス)がOPの問題に寄与している可能性があります。 – chux

答えて

1

文字列は割り当てられたメモリで、連続した文字を含むため、特定のインデックスに文字列または文字を追加する場合は、メモリをさらに割り当てる必要がありますあなたがメモリを文字列+ヌル終了文字のサイズに正確に割り当てた場合)、すべての文字を添えたchar/stringよりも大きいインデックスに移動します。

最も簡単な方法は、文字列を格納するのに十分な大きさの新しいメモリチャンクを割り当て、バイトごとにコピーを開始することです。 '/'に達すると、ターゲット文字列。

また、いくつか述べたように、これは有効ではありません。 charを宣言すると、基本的に1バイトのサイズのメモリセグメントが割り当てられます。文字列全体(文字数が1文字よりも大きい文字列)を格納するには不十分で、配列の場合は初期化できませんこのようにするには、これを行う正しい方法は、より大きなメモリセグメントを割り当てて、それをcharポインタからコピーすることです( char *c = "C:/...";
)。

+0

ありがとうございました。 –

関連する問題