C++实现字符串删除字符后逆序输出分享!

本文实例为大家分享了C++实现字符串删除字符后逆序输出的具体代码,供大家参考,具体内容如下

输入若干个字符串,和一个英文字符ch。 要求删除每个字符串中的字符ch(区分大小写),得到新的字符串,然后将新的字符串按照字典逆序排序后输出
(每个字符串的长度不超过30个字符,字符串总数不超过30)

输入:

3
abcddc
sxwcdez
ncvccvd
c

输出:

sxwdez
nvvd
abdd

C++实现:(适用于初学者)

  #include <iostream>  #include <cstring>    using namespace std;    void sort_array(char s[][30], int n);    void removing(char s[][30], int n, char ch);    int main() {    int n, i;    char s[30][30] = {0};    char ch;    cout << "input the number of strings:" << endl;    cin >> n;    cin.get();//注意要把/n从输入流中去除    for (i = 0; i < n; ++i) {      cout << "input the NO." << i + 1 << " string:" << endl;      cin.getline(s[i], 30);    }    cout << "input ch:" << endl;    ch = cin.get();    removing(s, n, ch);    sort_array(s, n);    for (i = 0; i < n; ++i) {      cout << s[i] << endl;//二维字符串数组可以通过这种方式直接输出    }    return 0;  }    void sort_array(char s[][30], int n) {    int i, j, k, temp;    for (j = 0; j < n - 1; ++j) {      bool sort_flag = false;      //相当于一个冒泡排序,这里排序使用了strcmp      for (i = 0; i < n - j - 1; ++i) {        char str_temp[30] = {0};        temp = strcmp(s[i], s[i + 1]);        if (temp >= 0)continue;        if (temp < 0) {          for (k = 0; k < 30; ++k) {            str_temp[k] = s[i][k];          }          for (k = 0; k < 30; ++k) {            s[i][k] = s[i + 1][k];          }          for (k = 0; k < 30; ++k) {            s[i + 1][k] = str_temp[k];          }          sort_flag = true;        }      }      if (!sort_flag) {        break;      }    }  }    void removing(char s[][30], int n, char ch) {    bool flag = false;    int i, j, k;    for (i = 0; i < n; ++i) {      for (j = 0; s[i][j] != ''; ++j) {        if (s[i][j] == ch) {          flag = true;          //去除字符后把后面的往前面移动一位          for (k = j; s[i][k] != ''; ++k) {            s[i][k] = s[i][k + 1];          }        } else { flag = false; }        if (flag) { j -= 1; }      }    }  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持<计算机技术网(www.ctvol.com)!!>。

—-想了解C++实现字符串删除字符后逆序输出分享!全部内容且更多的C语言教程关注<计算机技术网(www.ctvol.com)!!>

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/484948.html

(0)
上一篇 2020年11月10日
下一篇 2020年11月10日

精彩推荐