複習:輸入兩個字符串,從第一個字符串中刪除第二個字符串中所有的字符

例如,輸入“ They are students.” 和 “aeiou”, 則刪除之後的第一個字符串變爲“Thy r stdnts.”

解題思路:對於字符串,由於ASCII碼的所有符號爲256個(包括了拓展表)那麼,我們可以申請一個數組用來代表這256個字符是否存在於第二個字符串中,如果有,則標記爲1,如果沒有則標記爲0.同理,我們通過查詢,對應ASCII值號下,數組是否爲1,來判定是否刪除。

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

int main()
{
	string str1;
	string str2;
	getline(cin, str1);
	getline(cin, str2);
	char buf[256] = { 0 };
	for (int i = 0; i < str2.size(); i++)
	{
		buf[str2[i]]++;
	}
	string ret;
	for (int i = 0; i < str1.size(); i++)
	{
		if (buf[str1[i]] == 0)
			ret += str1[i];
	}
	cout << ret << endl;

	system("pause");
	return 0;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章