Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ c++;计算字符数组中的数字数量?_C++_Char - Fatal编程技术网

C++ c++;计算字符数组中的数字数量?

C++ c++;计算字符数组中的数字数量?,c++,char,C++,Char,我有一个字符数组,它的字符形式是数字0-8 Board[0] = '0'; Board[1] = '1'; Board[2] = '2'; Board[3] = '3'; Board[4] = '4'; Board[5] = '5'; Board[6] = '6'; Board[7] = '7'; Board[8] = '8'; 根据用户的输入,其中一些被更改为“x”或“o”,但我需要找出一种方法,以便我可以告诉它们的总数,它们不是“x”或“o” 我的意思是,如果说9个中的4个是“x”或“o”

我有一个字符数组,它的字符形式是数字0-8

Board[0] = '0';
Board[1] = '1';
Board[2] = '2';
Board[3] = '3';
Board[4] = '4';
Board[5] = '5';
Board[6] = '6';
Board[7] = '7';
Board[8] = '8';
根据用户的输入,其中一些被更改为“x”或“o”,但我需要找出一种方法,以便我可以告诉它们的总数,它们不是“x”或“o”

我的意思是,如果说9个中的4个是“x”或“o”,我需要能够得到剩下5个的事实。我试图对每个字符(电路板中的字符c)使用
,我得到了足够的结果,列出了不是“x”或“o”的字符,但我不知道如何让它发送多少个剩余的字符到一个int值。这就是我所能做到的

    for each(char c in Board)
    {
        if (c != 'x' && c != 'o')
        {

        }
    }

您应该定义一个计数器来计算这些字符的数量(通过递增):

int n=0;
用于(字符c:电路板)
{
如果(c!=“x”&&c!=“o”)
{
n++;//将n增加1
}
}

std::cout您应该定义一个计数器来计算这些字符的数量(通过递增):

int n=0;
用于(字符c:电路板)
{
如果(c!=“x”&&c!=“o”)
{
n++;//将n增加1
}
}
你可以试试看

auto n = std::count_if(Board, Board+9, std::isdigit);
你可以试试

auto n = std::count_if(Board, Board+9, std::isdigit);

您可以使用和的组合

#包含//用于std::isdigit
#包括//用于标准::计数
int num=std::count_if(线路板,线路板+9,std::isdigit);

您可以使用和的组合

#包含//用于std::isdigit
#包括//用于标准::计数
int num=std::count_if(线路板,线路板+9,std::isdigit);

假设您不需要任何数字,而只需要0到8之间的数字,您可以这样做:

int count = 0;

for each(char c in Board)
{
    if (c >= '0' && c <= '8')
    {
        count++;
    }
}

cout << count << " are digits between 0 and 8 (inclusive)" << endl;
int count=0;
每个(电路板中的字符c)
{

如果(c>='0'&&c假设您不需要任何数字,并且只需要那些介于0和8之间的数字,您可以这样做:

int count = 0;

for each(char c in Board)
{
    if (c >= '0' && c <= '8')
    {
        count++;
    }
}

cout << count << " are digits between 0 and 8 (inclusive)" << endl;
int count=0;
每个(电路板中的字符c)
{

如果(c>='0'&&c
,对于每个(…in…)不是C++。考虑我在C++中写的,它是有效的。是的,它不是标准C++。我使用VS编译器,这样即使你的编译器接受了这个语法,我也不建议提交它。你的导师希望你用你在这学期教过的语法。循环的
语法。如果您提交了此非标准代码,并且您的指导老师没有使用相同的编译器,那么您可能会被扣分,因为您的指导老师将无法测试每个(…in…)的
不是C++。考虑我在C++中写的,它是有效的。是的,它不是标准C++。我使用VS编译器,这样即使你的编译器接受了这个语法,我也不建议提交它。你的导师希望你用你在这学期教过的语法。循环的
语法。如果您提交此非标准代码,并且您的指导老师没有使用相同的编译器,那么您可能会被扣分,因为您的指导老师将无法对其进行测试。另一种方法是从一个变量开始,该变量计算每个移动的可用空间数和减量。另一种方法是从计算每个移动的可用空格数和减量的变量。它不是
是数字
,它是
isdigit
@Astor似乎没有“9”;)更正了拼写错误,谢谢。它不是
是数字
,它是
isdigit
@Astor似乎没有“9”;)更正了拼写错误,谢谢。