Question
I have a piece of code. Things i want to do: 1. Remove punctuation from beginning and end. 2. Return empty string if no alphabetic
I have a piece of code.
Things i want to do:
1. Remove punctuation from beginning and end.
2. Return empty string if no alphabetic character is found
3. Convert string to lowercase
My code is not working if I input something like: &*&98{}||{. It should return an empty string but returns 98. Can you solve this issue for me?
string cleanToken(string s) { // This for loop will remove any punctuation from the beginning until the first letter is encountered for (int i = 0, len = s.size(); i < len; i++) { if (ispunct(s[i])) { s.erase(i--, 1); len = s.size(); } else { break; } } // This for loop will remove any punctuation from the end until the first letter is encountered for (int i = s.size() - 1; i > 0; i--) { if (ispunct(s[i])) { s.erase(i); } else { break; } } transform(s.begin(), s.end(), s.begin(), ::tolower); // convert string to lowercase
return s; }
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started