How to convert a char array to a string?

后端 未结 4 424
耶瑟儿~
耶瑟儿~ 2020-11-27 09:49

Converting a C++ string to a char array is pretty straightorward using the c_str function of string and then doing strcpy. However, ho

相关标签:
4条回答
  • 2020-11-27 10:06

    There is a small problem missed in top-voted answers. Namely, character array may contain 0. If we will use constructor with single parameter as pointed above we will lose some data. The possible solution is:

    cout << string("123\0 123") << endl;
    cout << string("123\0 123", 8) << endl;
    

    Output is:

    123
    123 123

    0 讨论(0)
  • 2020-11-27 10:19

    The string class has a constructor that takes a NULL-terminated C-string:

    char arr[ ] = "This is a test";
    
    string str(arr);
    
    
    //  You can also assign directly to a string.
    str = "This is another string";
    
    // or
    str = arr;
    
    0 讨论(0)
  • 2020-11-27 10:20

    Another solution might look like this,

    char arr[] = "mom";
    std::cout << "hi " << std::string(arr);
    

    which avoids using an extra variable.

    0 讨论(0)
  • 2020-11-27 10:25
    #include <stdio.h>
    #include <iostream>
    #include <stdlib.h>
    #include <string>
    
    using namespace std;
    
    int main ()
    {
      char *tmp = (char *)malloc(128);
      int n=sprintf(tmp, "Hello from Chile.");
    
      string tmp_str = tmp;
    
    
      cout << *tmp << " : is a char array beginning with " <<n <<" chars long\n" << endl;
      cout << tmp_str << " : is a string with " <<n <<" chars long\n" << endl;
    
     free(tmp); 
     return 0;
    }
    

    OUT:

    H : is a char array beginning with 17 chars long
    
    Hello from Chile. :is a string with 17 chars long
    
    0 讨论(0)
提交回复
热议问题