将ip地址中的每一个字符串按照分隔符提取

1、算法思想

该题采用 c++ 中的 string 完成比较方便
对于字符串 string str1=“hehehe:hahaha:xixixi:lalala”
定义 int pos = 0,记录子串的初始位置
在循环语句中重复执行以下操作:

(1)、定义 int ret = str1.find(":", pos),用于从初始位置 0 开始查找 :的下标记并录位置

(2)、if(ret < 0) ,查询lalala子串是否含有 :,这种情况就是出现在 最后一个子串的情况,最后一个子串肯定不存在 :,所以必然返回一个负值,并且输出打印分割的最后一个字符串

(3)、否则提取ip中除过最后一个字符串的其余字符串

(4)、让 pos = ret+1,记录提取一个子串之后的字符的起始位置

2、算法实现

#include
#include
using namespace std;
void test06()
{
string str1=“hehehe:hahaha:xixixi:lalala”;
int pos = 0; //记录子串的初始位置
while(1)
{
int ret = str1.find(“:”, pos); //从初始位置 0 开始查找 :的下标记并录位置
if(ret < 0) //查询lalala子串是否含有 :
{
string tmp = str1.substr(pos, str1.size()-pos);
cout<<tmp<<endl;
break;
}

string tmp = str1.substr(pos, ret-pos); //提取子串的宽度
cout<<tmp<<endl;

pos = ret+1; //提取一个子串之后的字符的起始位置
}
}

int main(int argc, char *argv[])
{
test06();
return 0;
}

3、算法结果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Q渡劫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值