C++ string的end()用法

C++ string的end()用法,第1张

#include<iostream>

#include<string>

using namespace stdint main(){

 string c

 while(1){

  cin>>c

  if(*(c.end()-1)== '*'){  //c.end() 是一个迭代器,是个指针,前面加个* 就0k

   break

  }

 }

 cout<<c<<endl

}

[补充]string用法如下:

1.声明一个C++字符 

声明一个字符串变量很简单: 

string Str 

这样我们就声明了一个字符串变量,但既然是一个类,就有构造函数和析构函数。上面的声明没有传入参数,所以就直接使用了string的默认的构造函数,这个函数所作的就是把Str初始化为一个空字符串。String类的构造函数和析构函数如下: 

a) string s //生成一个空字符串s 

b) string s(str) //拷贝构造函数 生成str的复制品 

c) string s(str,stridx) //将字符串str内"始于位置stridx"的部分当作字符串的初值 

d) string s(str,stridx,strlen) //将字符串str内"始于stridx且长度顶多strlen"的部分作为字符串的初值 

e) string s(cstr) //将C字符串作为s的初值 

f) string s(chars,chars_len) //将C字符串前chars_len个字符作为字符串s的初值。 

g) string s(num,c) //生成一个字符串,包含num个c字符 

h) string s(beg,end) //以区间begend(不包含end)内的字符作为字符串s的初值 

i) s.~string() //销毁所有字符,释放内存 

都很简单,我就不解释了。 

2.字符串 *** 作函数 

这里是C++字符串的重点,我先把各种 *** 作函数罗列出来,不喜欢把所有函数都看完的人可以在这里找自己喜欢的函数,再到后面看他的详细解释。 

a) =,assign() //赋以新值 

b) swap() //交换两个字符串的内容 

c) +=,append(),push_back() //在尾部添加字符 

d) insert() //插入字符 

e) erase() //删除字符 

f) clear() //删除全部字符 

g) replace() //替换字符 

h) + //串联字符串 

i) ==,!=,<,<=,>,>=,compare() //比较字符串 

j) size(),length() //返回字符数量 

k) max_size() //返回字符的可能最大个数 

l) empty() //判断字符串是否为空 

m) capacity() //返回重新分配之前的字符容量 

n) reserve() //保留一定量内存以容纳一定数量的字符 

o) [ ], at() //存取单一字符 

p) >>,getline() //从stream读取某值 

q) << //将谋值写入stream 

r) copy() //将某值赋值为一个C_string 

s) c_str() //将内容以C_string返回 

t) data() //将内容以字符数组形式返回 

u) substr() //返回某个子字符串 

v)查找函数 

w)begin() end() //提供类似STL的迭代器支持 

x) rbegin() rend() //逆向迭代器 

y) get_allocator() //返回配置器 

#include <stdio.h>

#include <string.h>

void insert(char *src, const char *strToSearch, const char *insertion, char *output)

{

if (NULL == src || NULL == strToSearch || NULL == insertion || NULL == output)

return

char *pToken = strstr(src, strToSearch)

/*直接找到strToSearch, pToken指向开头*/

if (NULL == pToken)

return

size_t patternlen = strlen(strToSearch)

size_t firstpartlen = (pToken - src) + patternlen

strncpy(output, src, firstpartlen)/*拷贝前面部分*/

strcat(output, insertion)/*连上插入的那部分*/

strcat(output, pToken + patternlen)/*结尾那部分*/

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11595471.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存