文字列の初歩的な問題で苦戦しています

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

文字列の初歩的な問題で苦戦しています

#1

投稿記事 by YK » 17年前

文字列を入力したとき、その中に「A」が含まれていたら「B」に書き換えて表示する
プログラムを作成せよ。という問題です。(「ABC」の場合、「BBC」になる)
自分なりにやってはみたのですが、文字の書き換えが上手くいっていないようです。
どの辺りがおかしいのかご教授頂けないでしょうか。

#include <stdio.h>

void exchange(const char ch[/url])
{
unsigned i = 0;

while (ch){

if(ch=='A')
ch=='B';

putchar(ch);
i++;

}

}

int main(void)
{
char ab[100];

scanf("%s",ab);

exchange(ab);

return(0);
}

バグ

Re:文字列の初歩的な問題で苦戦しています

#2

投稿記事 by バグ » 17年前

>> ch=='B';

これがおかしいですね。

ch = 'B';

でないと置き換えはできません。

マルクス

Re:文字列の初歩的な問題で苦戦しています

#3

投稿記事 by マルクス » 17年前

const 修飾子があるとうまくいかないと思いますよ!
ググってみましょうw

toyo

Re:文字列の初歩的な問題で苦戦しています

#4

投稿記事 by toyo » 17年前

元の文字列を変更しないで表示だけなら
void exchange(const char ch[/url])
{
	unsigned i = 0;
	
	while (ch) {
		if(ch=='A') {
			putchar('B');
		} else {
			putchar(ch);
		}
		i++;
	}
}

YK

Re:文字列の初歩的な問題で苦戦しています

#5

投稿記事 by YK » 17年前

呆れる様な単純なミス申し訳ありません。
返信して下さった方の内容を踏まえた結果、上手く動きました。

稚拙な質問にお答え頂き大変ありがとうございました。

閉鎖

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