• ベストアンサー

char*型の文字列をchar[10]へ。

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

質問者が選んだベストアンサー

  • ベストアンサー
  • crew21
  • ベストアンサー率26% (58/222)
回答No.1

C言語的に文章が正しくないので答えにくいですが、察するに、 char* a; だけだと、aはおかしな領域を指している(可能性がある)ので、 例えば char b[10];と定義した配列とつなぐ、即ち、 a = &b[0]; とします。 これによりaは配列b[]の先頭領域を正しく指しますから、 その後は、a[0]='R'; とやろうと、a[7]='-' とやろうと自由です。 要は、宣言したポインタをちゃんと初期化するということですね。

その他の回答 (3)

回答No.4

質問の意味が正確に分からないのですが、yahhooooさんのやりたい事は多分、こんな感じ? 外していたらすみません。 char * a = "abcdefghi"; char b[10]; strncpy(b, a, 10); printf("%s\n", b);

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.3

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

  • crew21
  • ベストアンサー率26% (58/222)
回答No.2

No.1です。 もしかしたら、 char* a = "abcdefghij"; を char b[10]; に格納したいんでしょうかね。だとしたら、 for( int i=0; i<10; i++ ) { b[i] = *a++; } で十分でしょうね。 くれぐれもコンパイラに確保された領域を冒さないように気を付けてください。

関連するQ&A