二つの文字列を'scanf'で入力し、一つの文字列にして、ポインタを用いて表示するプログラムを作ろうとしています。
しかし、プログラムを実行するとエラーが起きます。
なぜこのようなエラーが起きるのか、
また、改善策を教えていただけませんか?
【実行結果】
10文字以下の文字列を入力してください。
1つ目:aa
2つ目:ss
a s
c
1#include<stdio.h> 2 3int main(void) 4{ 5 int i,a; 6 char str[2][100],*pc; 7 8 /*文字列の代入*/ 9 printf("10文字以下の文字列を入力してください。\n"); 10 printf("\n1つ目:"); 11 scanf("%*c%c",str[0]); 12 printf("\n2つ目:"); 13 scanf("%*c%c",str[1]); 14 15 /*結合した文字列の表示*/ 16 for(i=0;i<2;i++){ 17 pc=str[i]; 18 19 while(*pc!='\0'){ 20 printf("%c",*pc); 21 pc++; 22 } 23 } 24 return 0; 25}
【修正後】
c
1#include<stdio.h> 2 3int main() 4{ 5 int i,a; 6 char str[2][100],*pc; 7 8 /*文字列の代入*/ 9 printf("10文字以下の文字列を入力してください。\n"); 10 printf("\n1つ目:"); 11 scanf("%s",str[0]); 12 printf("\n2つ目:"); 13 scanf("%s",str[1]); 14 15 /*結合した文字列の表示*/ 16 for(i=0;i<2;i++){ 17 pc=str[i]; 18 19 while(*pc!='\0'){ 20 printf("%c",*pc); 21 pc++; 22 } 23 } 24 return 0; 25}
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。