プロが教える店舗&オフィスのセキュリティ対策術

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

A 回答 (4件)

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



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

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

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

質問の意味が正確に分からないのですが、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

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