我有一个char数组,其中以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'我需要能够得到剩下的5个事实。我试图使用for each(char c in Board)
并且我已经到了足够远的地方来列出不是'x'或'o'的字符但是我无法弄清楚如何让它发送有多少留给int值。这就是我的意思。
for each(char c in Board)
{
if (c != 'x' && c != 'o')
{
}
}
答案 0 :(得分:2)
你可以尝试
auto n = std::count_if(Board, Board+9, std::isdigit);
答案 1 :(得分:1)
您应该定义一个计数器来计算这些字符的数量(通过递增):
int n = 0;
for (char c : Board)
{
if (c != 'x' && c != 'o')
{
n++; // increment n by 1
}
}
std::cout << n << '\n'; // use the result
答案 2 :(得分:1)
您可以使用std::isdigit
和std::count_if
#include <cctype> // for std::isdigit
#include <algorithm> // for std::count_if
int num = std::count_if(Board, Board+9, std::isdigit);
答案 3 :(得分:0)
假设你不只是想要任何数字,只有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;