永发信息网

C++中关于assign的问题

答案:2  悬赏:80  手机版
解决时间 2021-03-06 20:53
  • 提问者网友:疯孩纸
  • 2021-03-05 21:47
string buff(str);
char parenthesis = ')';
str.assign(buff.begin() + buff.find_first_not_of(parenthesis),buff.begin() + buff.find_last_not_of(parenthesis) + 1);
请详细解释一下第三条代码的意思。。。
最佳答案
  • 五星知识达人网友:由着我着迷
  • 2021-03-05 22:39
为什么不自己google一下呢?

其实很简单,你拆成一个一个就可以了。
string 本身你可以把它当成一个字符的容器(类似于 stl中的容器):
1) string::begin()返回一个迭代器,指向它的第一个字符元素
2) string::find_first_not_of() 返回一个size_type,(类似于ptr_diff)的东西,查找在字符串中第一个与str中的某个字符匹配的字符
3) find_last_not_of() 则是找最后一个
4) string::assgin(const_iterator _first, const_iterator_last)则是把_first, _last这两个迭代器之间的string赋给另外一个string

比如说string buff(str); 中str 为“google)”;
那么赋值后,str的结果为google
全部回答
  • 1楼网友:野味小生
  • 2021-03-05 23:06
string::assign() // string::assign #include #include using namespace std; int main () { string str; string base="the quick brown fox jumps over a lazy dog."; // used in the same order as described above: str.assign(base); cout << str << endl; ...展开string::assign() // string::assign #include #include using namespace std; int main () { string str; string base="the quick brown fox jumps over a lazy dog."; // used in the same order as described above: str.assign(base); cout << str << endl; str.assign(base,10,9); cout << str << endl; // "brown fox" str.assign("pangrams are cool",7); cout << str << endl; // "pangram" str.assign("c-string"); cout << str << endl; // "c-string" str.assign(10,'*'); cout << str << endl; // "**********" str.assign(10,0x2d); cout << str << endl; // "----------" str.assign(base.begin()+16,base.end()-12); cout << str << endl; // "fox jumps over" return 0; } list::assign // list::assign #include #include using namespace std; int main () { list first; list second; first.assign (7,100); // 7 ints with value 100 second.assign (first.begin(),first.end()); // a copy of first int myints[]={1776,7,4}; first.assign (myints,myints+3); // assigning from array cout << "size of first: " << int (first.size()) << endl; cout << "size of second: " << int (second.size()) << endl; return 0; 不知道是不是你要找的收起
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯