前提・実現したいこと
書籍の復習問題にてstrlen関数をprintfで出力する際の変換指定子が書籍では%dとなっているのですが、実際コンパイルするとエラーが起き
エラー文通りに変換指定子を%luにすると改善されました。書籍は2017年製のものでしたが、今はC言語の仕様が変化しているのですか?
エディタはVImでGCCでコンパイルしています。
発生している問題・エラーメッセージ
hukusyuu.c:7:37: warning: format specifies type 'int' but the argument has type 'unsigned long' [-Wformat] printf("str1の長さは%dです\n",strlen(str1)); ~~ ^~~~~~~~~~~~ %lu 1 warning generated.###
C
1char str1[100] = {'h','e','l','l','o','\0'}; 2char str2[] = "C_gengo" ; 3printf("str1の長さは%dです\n",strlen(str1)); 4 5strcat(str1,str2); 6 7printf("str1に格納されている文字は%sです\n",str1);``` 8 9### 試したこと 10Googleで検索しました 11### 補足情報(FW/ツールのバージョンなど) 12vim version 8.2.1972
回答2件
あなたの回答
tips
プレビュー