char*型の文字列をchar[0]から順番に格納したいのですが、
どうやってやるかご存知の方おられますでしょうか。
申し訳ございません、宜しくお願い致します。

A 回答 (4件)

質問の意味が正確に分からないのですが、yahhooooさんのやりたい事は多分、こんな感じ?


外していたらすみません。
char * a = "abcdefghi";
char b[10];
strncpy(b, a, 10);
printf("%s\n", b);
    • good
    • 0

#2 の意味なら strncpy とか memcpy.

    • good
    • 0

No.1です。



もしかしたら、
char* a = "abcdefghij"; を char b[10]; に格納したいんでしょうかね。だとしたら、

for( int i=0; i<10; i++ ) {
b[i] = *a++;
}
で十分でしょうね。
くれぐれもコンパイラに確保された領域を冒さないように気を付けてください。
    • good
    • 0

C言語的に文章が正しくないので答えにくいですが、察するに、



char* a;
だけだと、aはおかしな領域を指している(可能性がある)ので、
例えば char b[10];と定義した配列とつなぐ、即ち、

a = &b[0]; とします。
これによりaは配列b[]の先頭領域を正しく指しますから、
その後は、a[0]='R'; とやろうと、a[7]='-' とやろうと自由です。

要は、宣言したポインタをちゃんと初期化するということですね。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

今、見られている記事はコレ!

おしトピ編集部からのゆる~い質問を出題中

お題をもっとみる


このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ