質問です。
buff[n]に格納されている文字とbuff[n+1]に格納されている文字を
連結したいのですが、できません。
strcpy関数を使おうとしていますが
strcpy(buff[n],buff[n+1])ではだめなのでしょうか。
お答えよろしくお願いします。
buffの型は何ですか?
文字を連結する,ということは(少なくともCでは)不可能です。
文字列を連結するのであれば,strcatという標準関数が存在しますが……。
あ、すみません。
文字列を連結したいです。
buffの型はcharです。
お願いします。
char buff[十分な領域が確保されていると仮定];
だったら、
> buff[n]に格納されている文字とbuff[n+1]に格納されている
> 文字を連結したいのですが、できません。
この問いに対する答は「既に連結されているから」。
私からADGさんへ質問。「文字と文字列の違いは解ってますよね?」
buff[n]とbuff[n+1]から成る新しい文字列を作りたいなら、
char buff2[十分なサイズを用意する];
sprintf( buff2, %c%c, buff[n], buff[n+1] );
でいいでしょう。
buff が『char*の配列』なのではないかと予測。
YuOさんのですでに答になっていると思いますが
memmove( buff + n, buff + n + 1, num );
はずしてたらごめんなさい。
たぶん~
char *buf[] ~ { ABC,DEF,GHI,JKL };
int n;
char out_str[12];
/* DEFとGHIを結合する */
sprintf(out_str,%s%s,buf[1],buf[2]);
かなあ
> たぶん~
> char *buf[] ~ { ABC,DEF,GHI,JKL };
> int n;
> char out_str[12];
> /* DEFとGHIを結合する */
> sprintf(out_str,%s%s,buf[1],buf[2]);
> かなあ
int n;
を使用してませんが。。。^^;
tibさんので、できました。
ありがとうございました。
> 私からADGさんへ質問。「文字と文字列の違いは解ってますよね?」
文字は1文字で文字列は単語って解釈してるんですけど。。。
自信ないです。
他のかたもアドバイスありがとうございました。
#include <iostream> // cout
#include <string> // string
#include <cstring> // strcpy
int main() {
char* buf[2] = { hello,, world };
char result[32];
std::strcpy(result, (std::string(buf[0]) + buf[1]).c_str());
std::cout << '[' << result << ']' << std::endl;
return 0;
}
とか。
> > 私からADGさんへ質問。「文字と文字列の違いは解ってますよね?」
> 文字は1文字で文字列は単語って解釈してるんですけど。。。
例えば、「私」を意味する「I」という英単語があります。
これは1文字だから文字ですか? 辞書に載ってる英単語だから文字列ですか?
「'I'なら文字、Iなら文字列」は正しいけど私が期待する答とは違うんだなぁ。