2011-08-09 4 views
0

は私が「これは」コマンドで文字列にヌルターミネータを追加するには?

strcat(l->value,l->db.param_value.val); 

は今、私は

を持つことができますので、ヌルを追加し、右に1つのより多くのスペースを移動する最初の値を追加したいループを持っていると言います
"this"'\0'"is"'\0' 

ループで連続してstrcatを実行すると「thisis」と表示されますが、誰でもこの方法を提案していますか?

アイブ氏は、それ以下の文が

 l->value= l->value[1 + strlen(l->db.param_value.val)]; 

はありがとうござい動作しませんでした試してみました!

+0

'l-> value'は配列またはバッファへのポインタですか? 'l-> value'で次の文字列の配置場所を追跡しますか?あなたはバッファの開始を追跡している何かを持っていますか、 'l-> value'だけを残しておき、別の一時ポインタは次の文字列がどこに行くべきかを追跡しますか?ターゲットバッファの大きさを示すものがあります(オーバーフローを検出して回避することができます)? –

+0

あなたが望むものは明確ではありません。文字列の途中でヌルターミネータを使用するように思えます。実際に何をしているのか分からない限り、おそらく非常に悪い考えです。 –

答えて

3

l->value[1 + strlen(l->db.param_value.val)]を割り当て
l->value += strlen(l->db.param_value.val) + 1; 

を試してみては、基本的にアドレスとして文字の小さな値を処理することを意味します。 あなたがほしいものではないのは間違いなくです。

また、十分なスペースとすべてがあることを確認してください。

関連する問題