公共の文字を削除し、2つの文字列を入力して、最初の文字列から2番目の文字列にすべての文字を削除します。

例:
「彼らは学生です」と入力し、「AEIOU」、削除後の最初の文字列は「汝のRのstdntsを。」となり
入力説明:各テストは、2つの入力文字列が含まれています。
出力説明:出力文字列が削除されました。
例:彼らは学生やなたのRのstdntsあるAEIOU入出力..

#include <iostream>
#include <string>
using namespace std;

string string_delete(string & str, int i){
	for (int j = i + 1; j < str.size() + 1; j++){
		str[i] = str[j];
		i++;
	}
	return str;
}

int main(){
	string str1;
	string str2;
	int i, j;
	//不能用cin接受字符串,因为cin遇到空格就结束了
	//输入字符串最好用getline
	getline(cin, str1);
	getline(cin, str2);
	for (i = 0; i < str1.size(); i++){
		for (j = 0; j < str2.size(); j++){
			if (str1[i] == str2[j]){
				string_delete(str1, i);
			}
		}
	}
	cout << str1;
	system("pause");
	return 0;
}

注:
遭遇cinを1、スペースが終わったので、入力文字列がgetlineのを使用するのが最善である、文字列CINを受け入れることはできません。
2、私はアルゴリズムは比較的粗いです使用し、再び2つの文字列を横断する同じ文字を探して、出会いの後に削除機能を呼び出します。
3、削除機能は、削除されるの着信位置、削除したい場所、上書きにコピーした後に削除される文字の位置は比較的簡単です。

公開された77元の記事 ウォン称賛23 ビュー7529

おすすめ

転載: blog.csdn.net/Hots3y/article/details/102981648