C串和string串的相互转化

来源:互联网 发布:淘宝店主手机号 编辑:程序博客网 时间:2024/05/17 06:26

      今天上午,项目中碰到这个小问题,花了好几分钟才解决,现在来总结一下:

    

      C串转为string串:

#include <iostream>using namespace std;int main(){char str1[100] = "abc";string s(str1);return 0;}
#include <iostream>using namespace std;int main(){char str1[100] = "abc";string s;s = str1;return 0;}


    sting串转化为C串,错误的程序为:

#include <iostream>using namespace std;int main(){string s = "123";char *str = s.c_str();return 0;}

    错误信息为:cannot convert from 'const char *' to 'char *'

    故可以改为:

#include <iostream>using namespace std;int main(){string s = "123";const char *str = s.c_str();return 0;}

     那你如果一定要把sting串转化到数组中,那怎么办呢?下面程序肯定不行:

#include <iostream>using namespace std;int main(){string s = "123";char str[100] = s.c_str();return 0;}

    还是用下面的方法吧:

#include <iostream>using namespace std;int main(){char str[100] = "";string s = "123";strcpy(str, s.c_str()); // 是c_str(), 不是c_strreturn 0;}