string的string::npos

一、出错代码和经验

class Solution {
public:
    string defangIPaddr(string address) {

        int position=1;
        //错误
        while( npos!=(position=address.rfind('.')) )
        {
            address.replace(position,1,"[.]");
        }

        return address;
    }
};

显示

Line 6: Char 16: error: use of undeclared identifier 'npos'; did you mean 'fpos'?
        while( npos!=(position=address.rfind('.')) )
               ^~~~
               fpos
/usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/postypes.h:112:11: note: 'fpos' declared here
    class fpos
          ^

注意,那个npos不是这么用的,需要用::访问,尴尬,C++基础都忘记了。。。

二、修改后AC的代码

使用的:rfind和replace成员函数的使用

class Solution {
public:
    string defangIPaddr(string address) {

        int position=address.size();
        while( string::npos !=(position=address.rfind('.',position)) )
        {
            //从position开始,长度为1的被后面的代替!!!
            address.replace(position,1,"[.]");
        }

        return address;
    }
};

二、用insert的,故意用insert的学习

https://leetcode-cn.com/problems/defanging-an-ip-address/solution/javasan-chong-jie-fa-di-san-chong-shuang-100jie-ju/
二次训练STL 文章被收录于专栏

这是一个分类专栏,仅做快速记录

全部评论

相关推荐

不愿透露姓名的神秘牛友
11-24 20:55
阿里国际 Java工程师 2.7k*16.0
程序员猪皮:没有超过3k的,不太好选。春招再看看
点赞 评论 收藏
分享
11-11 14:21
西京学院 C++
无敌混子大王:首先一点,不管学校层次怎么样,教育经历放在第一页靠上位置,第一页看不到教育经历,hr基本直接扔掉了
点赞 评论 收藏
分享
10-24 11:10
山西大学 Java
若梦难了:哥们,面试挂是很正常的。我大中厂终面挂,加起来快10次了,继续努力吧。
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务