アプリ版:「スタンプのみでお礼する」機能のリリースについて

学校の課題なのですが、途中のfor文?if文?のところがわかりません。
コードを教えて欲しいです。

次のソースコードを元に,下記表示結果例のように「キーボードから入力された文字列(最大 25 文字までと仮定する)をchar 型配列str に保存し,配列str の各要素(⇔半角記号 1 文字)が母音アルファベット(a/A, e/E, i/I, o/O, u/U)であった場合,それらを全てアスタリスク記号 * に置き換えた文字列を表示する」という機能を持ったプログラムを作りなさい.以下の条件に従うこと:
・return 文およびexit 関数の追加は不可.
・キーボードからの入力文字列は,半角空白を含まないものと仮定してよい.

ソースコード
#include <stdio.h>
#define NUM 26
int main(void) {
int i, j;
char str[ NUM ];
printf("Input a word: ");
scanf(" %s ", str[NUM] );

/* ここから */
????(任意行数のコードを追加)
/* ここまで */

printf(" ? ", ? ); // 配列 str に保存された文字列を表示
return 0;
}

「C言語の問題です。」の質問画像

質問者からの補足コメント

  • このような感じです。

    「C言語の問題です。」の補足画像1
      補足日時:2021/10/21 16:34

A 回答 (1件)

#include <stdio.h>


#include <stdlib.h>
#include <ctype.h>

#define NUM 26

int main(void) {
 int ch;
 char str[NUM];
 printf("Input a word: ");
 scanf("%25s%*[^\n]%*c", str);

 /* ここから */
 for (int i = 0; str[i] != '\0'; i++) {
  ch = tolower(str[i]);
  if ((ch == 'a') || (ch == 'e') || (ch == 'i') || (ch == 'o') || (ch == 'u')) {
   str[i] = '*';
  }
 }
 /* ここまで */

 printf("%s\n", str);
 return EXIT_SUCCESS;
}
「C言語の問題です。」の回答画像1
    • good
    • 0
この回答へのお礼

ありがとうございます!
問題文を省略してしまったのですが、この条件だとどうすれば良いでしょうか。

お礼日時:2021/10/21 16:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!