持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第7天,点击查看活动详情
查询这些接口的网址:点击蓝色字体即可进入请点击
begin
返回字符串第一个字符的迭代器
end
返回一个迭代器,该迭代器为字符串最后一个字符的后一个。 通常用
begin和end形成一个区间来遍历一个字符串。
string s("ml is cool");
for (std::string::iterator it = s.begin(); it != s.end(); ++it)
cout << *it;
cout << endl;
size
返回字符串的长度。
string s("ml is cool");
cout << s.size() << endl;
输出的结果为10
insert
该接口为插入一段字符。1
4,都是从7,对于迭代器pos位置开始插入一个字符或者字符串。 5iterator的参数,需要传迭代器参数。
operator+
实现两个字符串的拼接。把后一个字符串连接到前一个字符串上。
string s1("ml ");
string s2("is cool");
string s3;
s3 = s1 + s2;
cout << s3 << endl;
把字符串转换成整数
思路
下面只讲述一下我的思路,首先遍历一下字符串,看看是否符合转换成整数的字符串。当不是的时候直接返回0。 我是从后往前搞的——从后往前遍历,每个数乘以它的位权然后累加求和,当到第一个字符的时候也要判断一下是正是负还是个数。 当然它的测试用例也不够全,没有中间有
0的测试用例。如:234023
代码
class Solution {
public:
int StrToInt(string str) {
int a=0;
int ret=0;
for(auto ch:str)
{
if(a==0&&(ch=='+'||ch=='-'))
{
a=1;
continue;
}
else if(ch<='0'||ch>='9')
return 0;
}
for (int i = str.size() - 1; i >= 0; i--)
{
if (i == 0)
{
if (str[i] == '+')
break;
else if (str[i] == '-')
{
ret = -ret;
break;
}
}
ret += (str[i] - '0') * (int)(pow(10 , (str.size() - 1 - i)));
}
return ret;
}
};
415.字符串相加
思路
相应位置的数进行相加 我们从最后一位开始相加,把相加的结果进行尾插,同时要注意进位的问题,进位只可能是1。同时也要注意其中一个字符串遍历完的时候。最后再把加好的字符串进行逆置一下即可。
代码
class Solution {
public:
string addStrings(string num1, string num2) {
string ret;
int n1=num1.size()-1,n2=num2.size()-1;
int c=0;//表示进位
while(n1>=0||n2>=0){
int a=n1>=0?num1[n1]-'0':0;
int b=n2>=0?num2[n2]-'0':0;
int x=a+b+c;
if(x>9)
c=1;
else
c=0;
ret+=(x%10+'0');
--n1;--n2;
}
if(c==1)
ret+='1';
reverse(ret.begin(),ret.end());//逆置
return ret;
}
};