前提・実現したいこと
strで1次元配列では警告になるですが、2次元配列だと警告がなく実行できるのはなぜなのでしょうか?
発生している問題・エラーメッセージ
strを1次元配列で行うとこのような警告が表示されます。
strを2次元配列行うと動かせます。
15行目: warning C4477: 'printf' : 書式文字列 '%s' には、型 'char *' の引数が必要ですが、可変個引数 1 は型 'int' です 15行目: warning C4313: 'printf': 書式文字列内の '%s' が引数 1 ('int' 型) と競合しています。 18行目: warning C4047: '=': 間接参照のレベルが 'char *' と 'char' で異なっています。 20行目: warning C4047: '関数': 間接参照のレベルが 'const char *' と 'char' で異なっています。 20行目: warning C4024: 'strcat': の型が 2 の仮引数および実引数と異なります。
該当のソースコード
c
1#include<stdio.h> 2#include<string.h> 3 4int main(){ 5 int x,i; 6 char str[1000][1000]; 7 char *output; //出力先 8 9 printf("文字列の入力回数を入力:"); 10 scanf("%d",&x); // 文字列の入力回数 11 12 for(i = 0; i < x; i++){ 13 scanf("%s",&str[i]); 14 } 15 16 output = str[0]; 17 for(i = 1; i < x; i++){ 18 strcat(output,str[i]); 19 } 20 21 printf("%s",output); //入力した全ての文字列の連結先 22 23 return 0; 24}
回答2件
あなたの回答
tips
プレビュー