文字型配列str[20]を宣言し、初期値として、"My weight is 50kg."を代入すると、"My weight ##kg."と出力されるプログラムを作成せよ。
という課題がありまして
c
1#include<stdio.h> 2int main(void) 3{ 4 char str[20]; 5 int i; 6 str[20]="My weight is 50kg."; 7 for (i = 0; str[i] != '\0'; i++) 8 { 9 if (str[i] >= 48 && str[i] <= 57) 10 str[i] = '#'; 11 } 12 puts(str); 13 return 0; 14}
とプログラムして、コンパイルすると
incompatible pointer to integer conversion assigning
to 'char' from 'char [19]' [-Wint-conversion]
str[20]="My weight is 50kg.";
array index 20 is past the end of the array (which
contains 20 elements) [-Warray-bounds]
str[20]="My weight is 50kg.";
array 'str' declared here
char str[20];
^
と3つのエラーが出てきてしまいます。
エラーを直訳し意味は少し分かったのですがイマイチ修正の仕方がわかりません。
質問として不足なとこもあるかと思いますが教えてください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/03 15:13