繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM