amazon

14.11.11

charの文字列を初期化せずに後から代入する方法


#include <stdio.h>

int main(){
char a[20] = "atokara";
printf("a=%s\n",a);
return 0;
}
は、できるが、
#include <stdio.h>

int main(){
char a[20];
a = "atokara";
printf("a=%s\n",a);
return 0;
}
は、できない。

そこで、strcpyを使って以下のようにする
#include <stdio.h>
#include <string.h> //strcpyを使用するのに必要

int main(){
char a[20];
strcpy(a, "atokara");
printf("a=%s\n",a);
return 0;
}

ちなみに、char配列のサイズ指定の有無だが、
#include <stdio.h>

int main(){
char a[] = "atokara";
printf("a=%s\n",a);
return 0;
}
は、OKだが、
#include <stdio.h>
#include <string.h>

int main(){
char a[];
strcpy(a, "atokara");
printf("a=%s\n",a);
return 0;
}
は、エラーになる。strcpyの一つ目の引数はあらかじめサイズ指定が必要。

0 件のコメント:

コメントを投稿