str1.erase(str1.begin()+5,str1.end()) ; cout << str1 << endl ; str1.erase(1,2) ; cout << str1 << endl ; 1. 2. 3. 4. 5. 6. 7. 结果:ello world ello eo (6) clear()清空 clear()函数用来清空string中的数据,时间复杂度O(1)。 string str1 = "hello world" ; cout <...
//erase函数:第一个参数:要去除字符的位置,第二个参数:表示要去除字符的个数,这个个数就是位置 string drop = " \t";//空格或者/t s.erase(0, s.find_first_not_of(drop));//从0到第一个不是空格字符,它前面的空格数,将其清除掉,范围好像是[,) } void StringUtil::RTrim(string& s) { string...
intmain(){strings1("123456");char ch='a';s1.insert(0,1,ch);cout<<s1<<endl;return0;} 但是不太推荐使用,因为它的时间复杂度是O(N),底层的实现原理是移动每个数据到相应位置,时间复杂度即一个循环,是O(N)。 1.3 erase的使用 有插入就会有删除,erase即删除: 参数问题现在已经不大了,使用如下: 代...
这种方法的时间复杂度为O(nlogn),是比较高效的一种方法。例: ``` string remove_duplicate(string str) { sort(str.begin(), str.end()); str.erase(unique(str.begin(), str.end()), str.end()); return str; } ``` 这里使用STL中的sort()函数进行排序,使用erase()函数从字符串中删除重复元素...
erase() 删除字符串中的部分字符或子字符串 str.erase(0, 5); at() 通过位置访问字符(越界时会抛出异常) std::string str = "Hello"; char c = str.at(1); operator[] 通过索引访问字符(不安全,越界时不会抛出异常) char c = str[1]; c_str() 返回C 风格的字符串指针(常用于与 C 函数交互)...
sequence(1)string&erase(size_tpos =0,size_tlen = npos);character(2)iteratorerase(iterator p);range(3)iteratorerase(iterator first, iterator last); sequence 这里传入了默认参数,如果什么都没有就会删掉整个字符串。 如果只有一个参数就是默认先填充第一个参数,也就是起始位置,从你给的位置一路删除到末...
在这个示例中,我们使用了std::remove算法将所有空格移动到字符串的末尾,然后使用std::string::erase函数删除这些空格。这种方法的时间复杂度为O(n),其中n是字符串的长度。 相关搜索: 从std::vector<std::function<...>>中删除std::函数的C++ 从C++中的std :: string获取字节 ...
str.erase(first,last),first未删除区间的起始迭代器,last为需要删除区间的末尾迭代器的下一个指针,也即[first,last)。 str.erase(pos,length),其中pos为需要删除的其实位置,length为删除的字符个数。 (6)clear() clear()用来清空string中的数据,时间复杂度O(1)。
小结:对于insert、erase、replace来说,底层逻辑是挪动数据,时间复杂度很高,效率很低,能不使用就不使用,建议多使用operator+=。 7.8 find 返回值:如果找到相对应的字符后,find会返回该字符所在的索引位置(从0开始的下标索引位置),如果没有匹配成功,find则会返回npos(-1); ...
strchr 函数用于查找某个字符在字符串中首次出现的位置。 原型:char* strchr(const char* str, int ch); 返回值: 如果找到了字符,返回指向该字符的指针;如果没有找到,返回 nullptr。 示例: const char* str = "Hello, World!"; char* result = strchr(str, 'o'); ...