将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< break;
}

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

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

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

3、算法结果

将ip地址中的每一个字符串按照分隔符提取_第1张图片

你可能感兴趣的:(算法,c++)