C ++中子字符串方法的问题[重复]

Posted

技术标签:

【中文标题】C ++中子字符串方法的问题[重复]【英文标题】:Issues with the substring method in C++ [duplicate] 【发布时间】:2018-07-05 20:20:40 【问题描述】:

给定字符串 IP 作为输入

int index, i=0;
string substr;
while(i!=-1 && IPv4)
            index=IP.find(".",i+1);
            substr=IP.substr(i,index);
            cout << substr << " found at index " << index << " with i= "<<i << endl;
            i=index;
        

输入:“172.16.254.1”

预期输出:

172 found at index 3 with i= 0
.16 found at index 6 with i= 3
.254 found at index 10 with i= 6
.1 found at index -1 with i= 10

结果输出:

172 found at index 3 with i= 0
.16.25 found at index 6 with i= 3
.254.1 found at index 10
.1 found at index -1 with i= 10

所以算法使用的值应该是正确的,但我得到了错误的子字符串。

任何意见将不胜感激

【问题讨论】:

How to use string.substr() function?的可能重复 【参考方案1】:

substr 采用索引和长度。

另外,将变量命名为与成员函数相同可能不是一个好主意。你可能想要:

ip_chunk = IP.substr(i, index - i);

【讨论】:

以上是关于C ++中子字符串方法的问题[重复]的主要内容,如果未能解决你的问题,请参考以下文章

枚举 CDialog 中子控件的最快方法

oracle中子查询的使用方法有哪些?

JAVA String 如何去掉指定字符

JAVA SE中方法重载和方法重写及数据库中子程序的重载

sql 问题子查询返回的值不止一个。

vue中子组件触发父组件的方法