string
// string::substr #include <iostream> #include <string> int main () { std::string str="We think in generalities, but we live in details."; // (quoting Alfred N. Whitehead) std::string str2 = str.substr (3,5); // "think" std::size_t pos = str.find("live"); // position of "live" in str std::string str3 = str.substr (pos); // get from "live" to the end std::cout << str2 << ' ' << str3 << '\n'; return 0; } //Output: //think live in details.
#include <string> #include <iostream> #include<vector> #include<map> using namespace std; int main(){ string temp; vector<string> ans; map<string, string> dic; /*dic["a"] = "aa"; dic["b"] = "bb"; for (auto s : dic) cout << s.second << endl;*/ int m, n; cin >> m >> n; int a = m + n+1; while (a--){ getline(cin, temp); if (!temp.size()) continue; if (temp[0] == '<') ans.push_back(temp); else{ int pos = temp.find(" "); string signal = "{{ " + temp.substr(0, pos) + " }}"; string val = temp.substr(pos + 2, temp.size() - pos - 3); dic[signal] = val; } } for (int i; i < ans.size();i++){ for (map<string, string>::iterator it = dic.begin(); it != dic.end();it++){ int pos; while ((pos = ans[i].find(it->first)) != string::npos){ ans[i].replace(pos, it->first.size(), it->second); } } } //cout << ans[0] << endl; for (int i = 0; i < ans.size();i++) cout << ans[i]<< endl; system("pause"); return 0; }
版权声明:本文为博主原创文章,转载请标明出处。
来源:https://www.cnblogs.com/fridge/p/4861903.html