我正在尝试了解如何使用 mod 运算符重复循环。
如果你有两个字符串,"abc"
和 "defgh"
,如何使用 %
遍历 abc
,重复它直到到达 defgh
的结尾?即abc
和defgh
长度的mod关系是什么?
我不太明白这个概念。
最佳答案
简单。
std::string abc("abc");
std::string defgh("defgh");
for (size_t i = 0; i < defgh.length(); ++i)
{
printf("%c", abc[i % abc.length()]);
}
想想模数运算符在做什么,它离散地将左侧除以右侧,然后吐出整数余数。
例子:
0 % 3 == 0
1 % 3 == 1
2 % 3 == 2
3 % 3 == 0
4 % 3 == 1
在我们的例子中,左边代表“defgh”中的第 i 个位置,右边代表“abc”的长度,结果是“abc”中的循环索引。
关于c - 在 for 循环中使用模数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7509228/