c++loopsiteratorpunctuation

How to check if a string contains punctuation c++


I am attempting to iterate over a string to check for punctuation. I've tried to use ispunct() but am receiving an error that there is no matching fucntion for call to ispunct. Is there a better way to implement this?

for(std::string::iterator it = oneWord.begin(); it != oneWord.end(); it++)
{
    if(ispunct(it))
    {
    }
}

Solution

  • it is an iterator; it points to a character in a string. You have to dereference it to get the thing it points to.

    if(ispunct(static_cast<unsigned char>(*it)))