字面值和string相加
做加法运算时,字面值和字符都会被转化成string对象,因此直接相加就是将这些字面值串联起来:
string s1="hello",s2="world" //在s1和s2中都没有标点符号
string s3=s1+","+s2+'\n'
当把string对象和字符字面值及字符串字面值混在一条语句中使用时,必须确保每个加法运算符的两侧的运算对象至少有一个是string;
string s4=s1+","; //正确;把一个string对象和有一个字面值相加
string s5="hello"+",";//错误;两个运算对象都不是string
string s6=s1+","+"wrold";//正确,每个加法运算符号都有一个是string
string s7="world"+","+s1;//错误,不能把字面值直接相加,运算从左到右进行的
C++独特的遍历string方式;
//C++范围遍历
string s="hello world"
for(char c: s)
{
cout<<c<<endl;
}
//等价于
for(int i=0;i<s.size();i++)
{
char c=s[i];
}
//当我们想改变里面的值的时候,加一个&
for(char &c: s)
{
c='a';
}
定义string a[10000]那么里面a[0]每一个都是string 类型
string a[10000];
int main()
{
string b;
while(cin>>a[i])
{
if(a[i]==b)//因为a[i]里每个都是string 类型,所以可以进行比较,此时的是string 与string进行比较
{
cout<<b<<endl;
}
}
}
string s1, s2;、
s1.find(s2);
// 在 s1 中查找字符串 s2,找到返回 s2 首字母在字符串中的下标,找不到返回 -1
s1.replace(pos, len, s2);
// 把 s1 中从下标 pos 开始的长度为 len 的子串替换为 s2
s1.erase(it);
// 把 s1 字符串中迭代器 it 处的字符删除
s1.erase(pos, len);
// 把 s1 中从下标 pos 开始的长度为 len 的子串删除