DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  4737 随笔 :: 2 文章 :: 541 评论 :: 1614万 阅读
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

(1)char*转换为string:直接赋值即可

    char a[1024]="abcdefg";
    string mm=a;

(2)求char*(不包含\0)以及string的长度:strlen()函数

cout<<"a.size:"<<strlen(a)<<endl;

(3) string转化为char*
参考文献

注意:一定要使用strcpy()函数 等来操作方法c_str()返回的指针

比如:最好不要这样:
char* c;
string s=“1234”;
c = s.c_str(); //c最后指向的内容是垃圾,因为s对象被析构,其内容被处理

应该这样用:
string s=“12345”;//本质是"12345\0"
char c[6];//注意:这里如果是用c[5]的话,会出现内存问题,最少是string.size()+1,
strcpy(c,s.c_str());

注意:strcpy现在可能会用不了,比如visual studio 2015,可以用strcpy_s
完整代码

int main()
{
    char a[1024]="abcdefg";
    string mm=a;
    cout<<"a.size: "<<strlen(a)<<endl;

    char b[1024];
    strcpy(b,mm.c_str());

    printf("b is %s\n",b);
    cout<<"b.size: "<<strlen(b)<<endl;
}

执行结果

a.size: 7
b is abcdefg
b.size: 7

 
posted on   DoubleLi  阅读(1562)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
历史上的今天:
2021-02-02 【内存检测系列】window下windbg内存泄漏检查
2021-02-02 使用windbg检测内存泄漏
2021-02-02 如何在Win10系统中正确配置WinDbg?WinDbg配置方法说明
2021-02-02 WinDbg配置pdb路径
2021-02-02 《WinDbg 命令三部曲:(一)WinDbg 命令手册》
2021-02-02 windbg调试命令
2021-02-02 安装与配置windbg的symbol(符号)
点击右上角即可分享
微信分享提示