美文网首页
替换空格-string与char*互相转换

替换空格-string与char*互相转换

作者: 棉花糖7 | 来源:发表于2020-08-14 11:52 被阅读0次

    这道题是一道很简单的题目,但是涉及的知识点,尤其是C和C++之间的小语法,自己很不清楚。记录下来

    1. string 转 char*

     string res = "res";     char* str;      strcpy(str,res.c_str()); 

    如果是const char* 类型,可以用以下两种方法

    const char* cstr = res.c_str();

    或者 const char* cstr = res.data();

    2.char*转string

    char* str = "charStr"; string res= str; 直接赋值即可

    3.string 转 char[]

    string str = "sddd";

    char cstr=[10];

    int i;

    for(i=0;i<str.length();i++){

            cstr[i] = str[i]; }

    cstr[i] = '\0'; //一定要记得在末尾加一个结束字符

    4. char[] 转 string

    char cstr[9] = "adfa";

    string str = cstr; 直接赋值即可

    5. strcpy函数:是一种C语言的标准库函数,strcpy把含有'\0'结束符的字符串复制到另一个地址空间,返回值的类型为char*。

    原型声明:char *strcpy(char* dest, const char *src);

    功能:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间

    说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。

    返回指向dest的指针

    6. c_str()

    语法:

    const char *c_str();

    c_str()函数返回一个指向正规C字符串的指针常量, 内容与本string串相同.

    这是为了与c语言兼容,在c语言中没有string类型,故必须通过string类对象的成员函数c_str()把string 对象转换成c中的字符串样式

    1.c_str是一个内容为字符串指向字符数组的临时指针;

    2.c_str返回的是一个可读不可改的常指针;

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

    最好不要这样: char* c; string s = "2312", c = s.c_str();

    而应该是: strcpy(c,s.c_str()); 这样才不会出错。 因为s这个对象会被析构掉

    题目 code

    相关文章

      网友评论

          本文标题:替换空格-string与char*互相转换

          本文链接:https://www.haomeiwen.com/subject/iqkgdktx.html