72711


タイトルの通り、大文字を小文字に、小文字を大文字に変換するプログラムを作成することは容易なのですが、  
それ以外の文字を*で表現すべくプログラムをどうやったら作成できるのかがわかりません。

とりあえず、自分が現段階で作成したプログラムを示します。

[code]

    #include <stdio.h>
    #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;
    }
          
    
[/code]

現段階での実行結果  
$ ./a.out  
文字列? great!!  
変換後: GREAT!!  
$ ./a.out  
文字列? GREAT!!  
変換後: great!!

期待する実行結果  
$ ./a.out  
文字列? GREAT!!  
変換後: great**

初めは「else {str[i]=* ;}」みたいなことを考えたのですが、当然正しいはずもなくエラーが出てしまいました。  
勉強不足ですみませんが、どうやったら条件を満たすプログラムを作成できるのでしょうか。


CC BY-SA 4.0
2020-12-17T08:46:22.823
72710
2020-12-17T08:54:35.967
41837
question
c
大文字は小文字に、小文字は大文字に、それ以外の文字は*に変換するプログラム


> 初めは「else {str[i]=* ;}」みたいなことを考えたのですが、当然正しいはずもなくエラーが出てしまいました。

タイポ(入力間違い)でなければ、  
else {str[i]='*';} を試してみてはどうでしょう。


CC BY-SA 4.0
2020-12-17T08:54:35.967
72711
2020-12-17T08:54:35.967
3793
72710
answer