字符串删除字符后逆序输出 C++实现
2019-04-28 23:23
961 查看
输入若干个字符串,和一个英文字符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] != '\0'; ++j) { if (s[i][j] == ch) { flag = true; //去除字符后把后面的往前面移动一位 for (k = j; s[i][k] != '\0'; ++k) { s[i][k] = s[i][k + 1]; } } else { flag = false; } if (flag) { j -= 1; } } } }
相关文章推荐
- C++输入一个字符串,把其中的字符按照逆序输出的两种方法
- c++实现删除字符串前后指定字符
- 《任意输入一个合理大小的字符串,实现逆序输出并统计一个字符串中字母、数字、空格及其他字符的个数》
- C++【String类】String删除单个字符,删除字符串的函数实现
- C++ 字符数组的拷贝、拼接、逆序输出 函数的实现
- C++ 二维字符串数组 实现多组字符串逆序输出
- C++输入一个字符串,把其中的字符按照逆序输出的两种方法解析
- 用链表形式存储一个字符串,插入、删除某个字符,最后按正序、逆序两种方式输出字符串
- 分类统计字符个数、删除字符、实现字符串逆序
- C++实现删除字符串中所有重复出现的字符
- C++输入一个字符串,把其中的字符按照逆序输出的两种方法
- C++【String类】String删除单个字符,删除字符串的函数实现
- C++实现string类字符串单词的逆序输出
- c/c++整理--实现删除字符串所有指定字符
- C++输入一个字符串,把其中的字符按照逆序输出的两种方法
- 递归实现字符串逆序输出(c++和c)
- C++输入一个字符串,把其中的字符按照逆序输出的两种方法
- C++实现输入两个字符串,从第一字符串中删除第二个字符串中所有的字符
- c++实现字符串逆序输出
- C++ 删除字符串的首尾空字符