C++實(shí)現(xiàn)字符串刪除字符后逆序輸出
本文實(shí)例為大家分享了C++實(shí)現(xiàn)字符串刪除字符后逆序輸出的具體代碼,供大家參考,具體內(nèi)容如下
輸入若干個(gè)字符串,和一個(gè)英文字符ch。 要求刪除每個(gè)字符串中的字符ch(區(qū)分大小寫),得到新的字符串,然后將新的字符串按照字典逆序排序后輸出
(每個(gè)字符串的長度不超過30個(gè)字符,字符串總數(shù)不超過30)
輸入:
3
abcddc
sxwcdez
ncvccvd
c
輸出:
sxwdez
nvvd
abdd
C++實(shí)現(xiàn):(適用于初學(xué)者)
#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;//二維字符串?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; }
}
}
}
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
關(guān)于C++數(shù)組中重復(fù)的數(shù)字
這篇文章主要介紹得是關(guān)于C++數(shù)組中重復(fù)的數(shù)字,文章以問題描述得形式,對(duì)問題展開分析用不同得方法去解決問題并附上方法得詳細(xì)代碼,需要的朋友可以參考以下文章得具體內(nèi)容2021-11-11
C語言實(shí)現(xiàn)解析csv格式文件的示例代碼
CSV,有時(shí)也稱為字符分隔值,其文件以純文本形式存儲(chǔ)表格數(shù)據(jù)(數(shù)字和文本),本文為大家整理了C語言解析csv文件的方法,需要的可以參考一下2023-06-06
Qt之實(shí)現(xiàn)圓形進(jìn)度條的示例代碼
在平時(shí)做頁面開發(fā)時(shí),有些時(shí)候會(huì)用到圓形進(jìn)度條,本文主要介紹了Qt之實(shí)現(xiàn)圓形進(jìn)度條的示例代碼,具有一定的參考價(jià)值,感興趣的可以了解一下2023-10-10
C++類與對(duì)象的重點(diǎn)知識(shí)點(diǎn)詳細(xì)分析
類和對(duì)象是兩種以計(jì)算機(jī)為載體的計(jì)算機(jī)語言的合稱。對(duì)象是對(duì)客觀事物的抽象,類是對(duì)對(duì)象的抽象。類是一種抽象的數(shù)據(jù)類型;變量就是可以變化的量,存儲(chǔ)在內(nèi)存中—個(gè)可以擁有在某個(gè)范圍內(nèi)的可變存儲(chǔ)區(qū)域2023-02-02

