

すみません。どう考えて、書いても、答えが出ないので、ここで、みんなの力を借りさせていただきます。

文字列の中から特定の文字を削除するプログラムを記述しなさい。  
// 変数 str から、変数 code 代入された文字を削除する事。

[code]

    #include <iostream>
    #include <iomanip>
    #include <conio.h>
    using namespace std;
    
    int main()
    {
        // 変数宣言
        char str[10] = "";
        char code = '\0';
        
    
        // 削除する文字列と文字を入力
        cout << "削除する対象：";
        cin >> str;
        cout << "削除する文字：";
        cin >> code;
    
        // 入力された文字列の中から文字を削除
        
        // 結果を出力
        cout << "削除後の文字列：" << str;
    
        _getch();
        return 0;
    }
    
[/code]


CC BY-SA 4.0
2021-01-21T16:34:32.013
73477
2021-01-22T04:32:43.327
2021-01-21T16:39:36.613
3605
43618
question
c++
文字列の特定文字を削除するプログラム

[code]

    #include<iostream>
    #include<iomanip>
    using namespace std;
    
    int main(){
        char str[10] = "teeeeste";
        char code = 'e';
    
        for(int i = 0; i < sizeof(str)/sizeof(*str); ++i){
            if(str[i] == code){
                for(int j = i; j < sizeof(str)/sizeof(*str)-1; ++j){
                    str[j] = str[j+1];
                }
                --i;
            }
        }
        cout << str << endl;
        return 0;
    }
    
[/code]

指摘されたので修正しました


CC BY-SA 4.0
2021-01-22T03:50:32.120
73488
2021-01-22T04:32:43.327
2021-01-22T04:32:43.327
43624
43624
73477
answer


[std::remove](https://en.cppreference.com/w/cpp/algorithm/remove)
を使う方法はどうでしょうか。

[code]

    #include <algorithm>
    #include <cstring>
                    :
    
      // 入力された文字列の中から文字を削除
      *remove(str, str+strlen(str), code) = 0;
    
      // 結果を出力
      cout << "削除後の文字列：" << str << endl; // endl を追加
    
[/code]


CC BY-SA 4.0
2021-01-22T04:24:28.647
73489
2021-01-22T04:24:28.647
73477
answer