[英]C++ how to determine if char is first char in a word
看来这应该很简单,但我似乎无法弄清楚。 我正在尝试编写一个函数,如果位置pos处的字符是单词的第一个字符,则该函数将返回true。 这种情况下的单词被定义为任何字母数字字符的字符串。
这是我最近的尝试:
bool wordBeginsAt (const std::string& message, int pos)
{
string temp;
int x;
for (x=pos;isAlphanumeric(message[x]==true);x++)
{
temp[x] = message[x];
}
if (temp[pos]!=0)
{
return false;
}
else
return true;
}
bool isAlphanumeric (char c)
{
return (c >= 'A' && c <= 'Z')
|| (c >= 'a' && c <= 'z')
|| (c >= '0' && c <= '9');
}
通过你的定义,一个字符是一个字的第一个字符,如果它是字母数字,要么是字符串或字符中第一个字符之前,它是不是字母。
好吧, isAlphanumeric(message[x]==true)
应该是isAlphanumeric(message[x])==true
。 但是您的代码还有其他严重的问题,例如超出temp
范围写入,并且循环逻辑都是错误的,因此我认为最好重新开始。
您需要做的是:
不需要循环或变量。 第二个条件将在pos == 0
时发生; 如果您实际上正在查看第一个字符,则您不想检查前一个字符。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.