質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

解決済

1回答

1349閲覧

c言語 文字列の走査

mdV7jWTlQaT74kE

総合スコア3

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

0クリップ

投稿2020/09/03 14:25

文字型配列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つのエラーが出てきてしまいます。
エラーを直訳し意味は少し分かったのですがイマイチ修正の仕方がわかりません。
質問として不足なとこもあるかと思いますが教えてください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

修正するだけでしたらこれでエラーは無くなります。

C

1 char str[20] = "My weight is 50kg.";

文字列の扱い

4.文字列を扱う関数
char str[256];
str = "あいうえお";

とか

char str1[256] = "あいうえお";
char str2[256];
str2 = str1;

のようにすればいいと思っている方もいらっしゃるでしょうが、これは大きな間違いです。
データ型が実数のように「a = 3」や「a = b」という方法は文字列には使えないのです。
それではどうすればよいのでしょうか?

詳細はリンク先を御覧ください。

投稿2020/09/03 14:33

編集2020/09/03 14:37
mjk

総合スコア303

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mdV7jWTlQaT74kE

2020/09/03 15:13

ありがとうございます。エラーも起きず実行できました。 リンクにもあるたくさんのルールを学んで行こうと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問