質問です

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ユーリ

質問です

#1

投稿記事 by ユーリ » 16年前

#include <stdio.h>

int main(void)
{
   char i;
	char moji[30];
	printf("文字を入力してください\n");
	scanf("%s",moji);
             
                 switch(moji) {
			case 'a':
			printf("%s",moji);
			
			case 'i':
			printf("%s",moji);
		
			case 'u':
			printf("%s",moji);
		      
			case 'e':
			printf("%s",moji);
		   
			case 'o':
			printf("%s",moji);
                     	
                      default:
			break;
                       }
         moji='=';
	 printf("%s",moji);

	return 0;
}

入力した文字たとえばemiを母音のところを=表示=m=と表示したいのですが
上記のプログラムまでできていますがうまくいきません
ヒントの方をお願いします。

Mist

Re:質問です

#2

投稿記事 by Mist » 16年前

前も指摘されていましたがタイトルは質問内容がわかりるものにしましょう。

switch以降は間違っていますので以下をヒントに作り直してください。
1.strlenで入力された文字数を取得する
2.forでi=0から入力された文字数まで2-1の処理を実行
2-1.moziが母音であれば'='に置き換える、子音であれば何もしない

ねこ

Re:質問です

#3

投稿記事 by ねこ » 16年前

これ前に質問して解決した問題じゃ・・・

http://www.play21.jp/board/formz.cgi?ac ... &rln=36413

ユーリ

Re:質問です

#4

投稿記事 by ユーリ » 16年前

すいません まちがえました

conio

Re:質問です

#5

投稿記事 by conio » 16年前

>>すいません まちがえました 

「解決したのに、解決していない問題だと間違えて、また投稿してしまった」
と言うことでしょうか?
(良く分からないので、解釈が間違っているかもしれません)


とりあえず、上記のプログラムで思ったことは
---------------------------------------------------------------------
●char型の変数iが初期化されてない
●添え字に使うのであれば、iはint型で良いのでは?
●文字列を変換する部分と、表示する部分は分けたほうが良い
●breakや処理の分岐など、switch文の中がおかしい。
●for文などを使っていないので、文字列を変換する部分が意味を成さない。
(i = 0だったとして、置換されるのは先頭の文字だけ)
---------------------------------------------------------------------
こんな感じですかね。


とりあえず、30文字未満であれば下記のプログラムで動くはずです。
-----------------------------------------------------------------
#include <stdio.h>

void Replace( char str[/url])
{
   int i = 0;

   while(str){
       switch(str) {
			case 'a':
			case 'i':
			case 'u':
			case 'e':
			case 'o': str = '=';
                                      break;
           default:break;
        }
       i += 1;
   }
}

int main(void)
{
	int i = 0;
	char moji[30];

	printf("文字を入力してください\n");scanf("%s",moji);    
	Replace(moji);
	printf("%s",moji);

	return 0;
}
-----------------------------------------------------------------

閉鎖

“C言語何でも質問掲示板” へ戻る