這篇文章主要為大家展示了C++如何實(shí)現(xiàn)字符串刪除字符后逆序輸出,內(nèi)容簡(jiǎn)而易懂,希望大家可以學(xué)習(xí)一下,學(xué)習(xí)完之后肯定會(huì)有收獲的,下面讓小編帶大家一起來看看吧。
做網(wǎng)站、成都網(wǎng)站制作的關(guān)注點(diǎn)不是能為您做些什么網(wǎng)站,而是怎么做網(wǎng)站,有沒有做好網(wǎng)站,給創(chuàng)新互聯(lián)公司一個(gè)展示的機(jī)會(huì)來證明自己,這并不會(huì)花費(fèi)您太多時(shí)間,或許會(huì)給您帶來新的靈感和驚喜。面向用戶友好,注重用戶體驗(yàn),一切以用戶為中心。
輸入若干個(gè)字符串,和一個(gè)英文字符ch。 要求刪除每個(gè)字符串中的字符ch(區(qū)分大小寫),得到新的字符串,然后將新的字符串按照字典逆序排序后輸出
(每個(gè)字符串的長(zhǎng)度不超過30個(gè)字符,字符串總數(shù)不超過30)
輸入:
3
abcddc
sxwcdez
ncvccvd
c
輸出:
sxwdez
nvvd
abdd
C++實(shí)現(xiàn):(適用于初學(xué)者)
#include#include 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;//二維字符串?dāng)?shù)組可以通過這種方式直接輸出 } 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; //相當(dāng)于一個(gè)冒泡排序,這里排序使用了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; //去除字符后把后面的往前面移動(dòng)一位 for (k = j; s[i][k] != '\0'; ++k) { s[i][k] = s[i][k + 1]; } } else { flag = false; } if (flag) { j -= 1; } } } }
以上就是關(guān)于C++如何實(shí)現(xiàn)字符串刪除字符后逆序輸出的內(nèi)容,如果你們有學(xué)習(xí)到知識(shí)或者技能,可以把它分享出去讓更多的人看到。