C++ convert char to const char*

后端 未结 5 1174
情歌与酒
情歌与酒 2020-12-10 03:42

Basically i just want to loop through a string of characters pull each one out and each one has to be of type const char* so i can pass it to a function. heres a example. Th

相关标签:
5条回答
  • 2020-12-10 04:08

    Usually a const char * is pointing to a full null-terminated string, not a single character, so I question if this is really what you want to do.

    If it's really what you want, the answer is easy:

    theval = &thestring[i];
    

    If the function is really expecting a string but you want to pass it a string of a single character, a slightly different approach is called for:

    char theval[2] = {0};
    theval[0] = thestring[i];
    result = func(theval);
    
    0 讨论(0)
  • 2020-12-10 04:18

    You can keep the address of that element:

    theval = &thestring[i];

    0 讨论(0)
  • 2020-12-10 04:24

    You can take the address of that element:

    theval = &thestring[i];
    
    0 讨论(0)
  • 2020-12-10 04:31
    string sym(1, thestring[i]);
    theval = sym.c_str();
    

    It gives a null-terminated const char* for every character.

    0 讨论(0)
  • 2020-12-10 04:32

    I'm guessing that the func call is expecting a C-string as it's input. In which case you can do the following:

    string theString = "abc123";
    char tempCString[2];
    string result;
    
    tempCString[1] = '\0';
    
    for( string::iterator it = theString.begin();
         it != theString.end(); ++it )
    {
       tempCString[0] = *it;
       result = func( tempCString );
    }
    

    This will produce a small C-string (null terminated array of characters) which will be of length 1 for each iteration.

    The for loop can be done with an index (as you wrote it) or with the iterators (as I wrote it) and it will have the same result; I prefer the iterator just for consistency with the rest of the STL.

    Another problem here to note (although these may just be a result of generalizing the code) is that the result will be overwritten on each iteration.

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