Home > Net >  How do I remove the first full number of a string as an integer C
How do I remove the first full number of a string as an integer C

Time:10-04

How do I remove the first full number of a string as an integer in C

for instance a string "thdfwrhwh456dfhdfh764"

Would need to only pull out the first number 456 as an integer.

Thanks

CodePudding user response:

Start by finding the first digit:

std::size_t pos = str.find_first_of(“0123456789”);

then check whether a digit was found:

if (pos != std::string::npos)

and then extract the tail of the string:

std::string tail = str.substr(pos);

and then extract the value:

int value = std::stoi(tail);

CodePudding user response:

Here is a good example of how you might go about reading only the first number of a string that appears:

const char string_c[] = "this is a number 67theaksjdhflkajsh 78";
std::string string_n;
bool exitable = false;
for (int i = 0; i < sizeof(string_c); i  )
{
    char value = string_c[i];
    if (value == '0' ||
        value == '1' ||
        value == '2' ||
        value == '3' ||
        value == '4' ||
        value == '5' ||
        value == '6' ||
        value == '7' ||
        value == '8' ||
        value == '9') 
    {
        string_n  = string_c[i];
        exitable = true;
    } else if (exitable == true)
    {
        printf("break\n");
        break;
    }
}
printf("this is the number: %s ", string_n.c_str());

If you need the number as int then you can use the std::stoi() function.

  • Related