C++: insert char to a string

后端 未结 3 1064
庸人自扰
庸人自扰 2020-12-05 18:27

so I am trying to insert the character, which i got from a string, to another string. Here I my actions: 1. I want to use simple:

someString.insert(somePosi         


        
相关标签:
3条回答
  • 2020-12-05 18:46

    Simplest is to provide yourself with a function that turns a character into a string. There are lots of ways of doing this, such as

    string ToStr( char c ) {
       return string( 1, c );
    }
    

    Then you can simply say:

    someString.insert(somePosition, ToStr(myChar) );
    

    and use the function in other cases where you want a string but have a char.

    0 讨论(0)
  • 2020-12-05 19:04

    There are a number of overloads of std::string::insert. The overload for inserting a single character actually has three parameters:

    string& insert(size_type pos, size_type n, char c);
    

    The second parameter, n, is the number of times to insert c into the string at position pos (i.e., the number of times to repeat the character. If you only want to insert one instance of the character, simply pass it one, e.g.,

    someString.insert(somePosition, 1, myChar);
    
    0 讨论(0)
  • 2020-12-05 19:08
    1. Everything seems to be compiling successfully, but program crashes the gets to
    conversion >> myCharInsert;
    

    The problem is that you are trying to dereference(access) myCharInsert(declared as a char* ) which is pointing to a random location in memory(which might not be inside the user's address space) and doing so is Undefined Behavior (crash on most implementations).

    EDIT

    To insert a char into a string use string& insert ( size_t pos1, size_t n, char c ); overload.

    Extra

    To convert char into a std::string read this answer

    0 讨论(0)
提交回复
热议问题