C++ 计算字符数组中的数字数量
c++ count amount of numbers in char array?
我有一个字符数组,其中的数字为 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"的字符,但我无法弄清楚如何让它发送多少剩余的整数值。这是我所得到的。
for each(char c in Board)
{
if (c != 'x' && c != 'o')
{
}
}
你可以
试试
auto n = std::count_if(Board, Board+9, std::isdigit);
您应该定义一个计数器来计算这些字符的数量(通过递增):
int n = 0;
for (char c : Board)
{
if (c != 'x' && c != 'o')
{
n++; // increment n by 1
}
}
std::cout << n << 'n'; // use the result
您可以使用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);
假设您不仅想要任何数字,并且只想要 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;
相关文章:
- C++如何计算用户输入的数字中的偶数位数
- 如何计算数组中元素的位数?(不是数组的长度),并计算其数字的总和
- 计算十进制 c++ 之后的数字
- 我可以通过取每个数字的模并取和来计算大数的模数吗?
- 在C++中编程,将 3 个数字发送到一个函数,然后计算这 3 个数字的平均函数
- 如何在向量中某个数字之后重新计算进程
- 如何计算整数的十进制数字?
- 如何使用count_if计算向量中的可变数字范围
- 如何计算整数链中使用了多少次数字?
- 如何计算给定数字在二叉树中出现的次数?
- C++在不使用pow或循环的情况下计算一个数字的幂
- 从文本文件中的每一行读取数字,并计算数字重复的次数
- 如何使用递归计算从 0 到给定数字的奇数?
- 在手臂氖中高效计算两个不同的数字
- 如何将此代码转换为两个以上的数字(计算HCF)
- 相同数字计算的怪异结果差异
- 用非常大的数字计算
- 猜数字:计算机要猜多少次才能得到正确的数字
- 从给定的数字计算所有可能的数字
- 根据存储在集合中的数字计算向量中的int