C++如何确定字符是否是单词中的第一个字符

C++ how to determine if char is first char in a word

本文关键字:字符 第一个 单词中 是否是 何确定 C++      更新时间:2023-10-16

这看起来应该很简单,但我似乎无法理解。我正在尝试编写一个函数,如果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的范围,并且循环逻辑都是错误的,所以我认为最好重新开始。

你需要做的是:

  • 检查字符是否为字母数字
  • 检查前一个字符是否为,或者是否没有前一个角色

不需要循环或变量。当CCD_ 4;如果您正在查看第一个字符,则不希望检查前一个字符。