c++string函数详解

c++string函数详解首先 为了在我们的程序中使用 string 类型 我们必须包含头文件 如下 nbsp nbsp include 注意这里不是 string hstring h 是 C 字符串头文件 1 声明一个 C 字符串声明一个字符串变量很简单 nbsp nbsp stringStr 这样我们就声明了一个字符串变量 但既然是一个类 就有构造函数和析构函数 上面的声明没有传入参数 所以就直接使用了 string 的默

还有必要再重复一下C++字符串和C字符串转换的问题,许多人会遇到这样的问题,自己做的程序要调用别人的函数、类什么的(比如数据库连接函数Connect(char*,char*)),但别人的函数参数用的是char*形式的,而我们知道,c_str()、data()返回的字符数组由该字符串拥有,所以是一种const char*,要想作为上面提及的函数的参数,还必须拷贝到一个char*,而我们的原则是能不使用C字符串就不使用。那么,这时候我们的处理方式是:如果此函数对参数(也就是char*)的内容不修改的话,我们可以这样Connect((char*)UserID.c_str(), (char*)PassWD.c_str()),但是这时候是存在危险的,因为这样转换后的字符串其实是可以修改的(有兴趣地可以自己试一试),所以我强调除非函数调用的时候不对参数进行修改,否则必须拷贝到一个char*上去。当然,更稳妥的办法是无论什么情况都拷贝到一个char*上去。同时我们也祈祷现在仍然使用C字符串进行编程的高手们(说他们是高手一点儿也不为过,也许在我们还穿开裆裤的时候他们就开始编程了,哈哈…)写的函数都比较规范,那样我们就不必进行强制转换了。

 

#include


#include


using namespace std;



    cout<<"use []:"<
    for(int i=0; i

    {

        cout<
    }

    cout<





    cout<<"use at():"<
    for(int i=0; i

    {

        cout<
    }

    cout<
    

    cin.get();
}
21)
#include


#include


using namespace std;













    cout<<"use at():"<
    int i;

    for(i=0; i

    {

        cout<<"c_str() : "<
        cout<<"data() : "<
    }

    cout<<"c_str() : "<
    cout<<"data() : "<
    cout<
    

    cin.get();
}
22)
// substr() 返回某个子字符串
#include


#include


using namespace std;


















版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/221778.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午5:19
下一篇 2026年3月17日 下午5:19


相关推荐

  • @Html.DropDownList[通俗易懂]

    @Html.DropDownList[通俗易懂]page@Html.DropDownList("ID",Model.SystemParameterList)ViewModel:publicIEnumerable<

    2022年7月2日
    39
  • 服务治理:服务熔断与监控

    服务治理:服务熔断与监控项目中微服务如何修改 1 添加依赖 dependency groupId org springframew cloud groupId artifactId spring cloud starter hystrix artifactId dependency

    2026年3月26日
    1
  • eclipse 导入父子工程_eclipse 导入maven 父子项目

    eclipse 导入父子工程_eclipse 导入maven 父子项目你先要确认svn上是否是maven项目,否则要自己重新建一个maven项目然后直接引入目录了。如果确认是maven项目,那么有个两个方案。案一:先用任何client软件将svn下载。然后在eclipse选择import,然后当作existmavenproject导入。案二:在project中有checkoutmavenfromscm。scm就是指版本控制软件。不过不同版本控制的sc…

    2022年5月6日
    249
  • vue生命周期钩子函数详解

    vue生命周期钩子函数详解先放一张官网生命周期图 vue 有 8 种生命周期函数 钩子函数触发的行为在此阶段可以做的事情 beforeCreadt 实例的挂载元素 el 和数据对象 data 都为 undefined 还未初始化 加 loading 事件 createdvue 实例的数据对象 data 有了 el 还没有结束 loading 请求数据为 mounted

    2026年3月26日
    3
  • 掩码、通配符与反掩码

    掩码、通配符与反掩码掩码采用按位与运算,计算一个ip地址的网络号0&0=0  1&0=0  即:x&0=00&1=0  1&1=1  即:x&1=xip地址的结构=网络号+主机号若要得到网络号,掩码的结构必然为前面是连续的1,后面是连续的0 通配符0表示严格匹配,1表示无需匹配0和1可以连续也可以不连续通配符与掩码的功能完全不同,没有任何关系例如:如何选择出192.x.1.x这样的

    2022年7月19日
    24
  • Pycharm 2021.12.13 激活码使用后自动消失【2021最新】

    (Pycharm 2021.12.13 激活码使用后自动消失)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html1435QFILVV-eyJsaWNlbnNlSW…

    2022年3月30日
    54

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号