質問: タイトルの通り、大文字を小文字に、小文字を大文字に変換するプログラムを作成することは容易なのですが、 それ以外の文字を*で表現すべくプログラムをどうやったら作成できるのかがわかりません。 とりあえず、自分が現段階で作成したプログラムを示します。 ``` #include #define MAXSTRLEN 32 void str_change(char str[]) { int i=0; while(str[i]!='\0'){ if('A'<=str[i] && str[i]<='Z'){ str[i]=str[i]-'A'+'a'; } else if('a'<=str[i] && str[i]<='z'){ str[i]=str[i]-'a'+'A'; } \\ここに*の手続きをすると考えている。 i++; } } int main(void) { char str[MAXSTRLEN]; printf("文字列? "); scanf("%s", str); str_change(str); printf("変換後: %s\n", str); return 0; } ``` 現段階での実行結果 $ ./a.out 文字列? great!! 変換後: GREAT!! $ ./a.out 文字列? GREAT!! 変換後: great!! 期待する実行結果 $ ./a.out 文字列? GREAT!! 変換後: great** 初めは「else {str[i]=* ;}」みたいなことを考えたのですが、当然正しいはずもなくエラーが出てしまいました。 勉強不足ですみませんが、どうやったら条件を満たすプログラムを作成できるのでしょうか。
回答: > > 初めは「else {str[i]=* ;}」みたいなことを考えたのですが、当然正しいはずもなくエラーが出てしまいました。 > > > タイポ(入力間違い)でなければ、 else {str[i]='*';} を試してみてはどうでしょう。