ispunct()
以这种方式分隔单词时效果很好"one, two; three"
。然后它将删除“,;” 并用给定的字符替换。
但是如果以这种方式给出字符串,"ts='TOK_STORE_ID';"
那么它将"ts='TOK_STORE_ID';"
作为一个单独的标记,或者
"one,one, two;four$three two"
作为三个令牌1. "one,one" 2. "two;four$three" 3. "two"
是否有任何一个"one,one, two;four$three two"
可以被视为"one one two four three two"
每个单独的令牌?
编写手动代码,例如:
for(i=0;i<str.length();i++)
{
//validating each character
}
当字符串非常长时,此操作将变得非常昂贵。
那么还有其他功能ispunct()
吗?还是别的什么?
在 c 中,我们这样做是为了比较每个字符:
for(i=0;i<str.length();i++)
{
if(str[i]==',' || str[i]==",") // Is there any way here to compare with all puctuations in one shot?
str[i]=" "; //replace with space
}
在 c++ 中,正确的方法是什么?