gpt4 book ai didi

c++ - 如何计算连续出现两次的字符

转载 作者:太空宇宙 更新时间:2023-11-04 16:06:57 26 4
gpt4 key购买 nike

我正在使用 C++。到目前为止,我的代码是这样的:

#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <windows.h>

int main() {
char word[100]; int ctr, count = 0;
printf("Enter string: "); gets(word);

ctr = 1;
while (word[ctr] != '\0') {
if (word[ctr-1] == word[ctr]) count++;
ctr++;
}

printf("%d", count);
return 0;
}

sample 运行

Enter string: mississippi
3

Enter string: mmmmrrnzzz
6

我已经正确运行了第一个示例(密西西比州),只有 3 个字符连续出现两次,但在输出为 6 的第二个示例运行(mmmmrrnzzz)中没有出现。

我的问题是,它不应该是 6,而是 4。前两个连续的 m 为 1,接下来的两个连续的 m 为 1,r 为 1,z 为 1。我想分别计算第一个“mm”和第二个“mm”以及“zz”,但我不知道如何计算。

我是一名大一新生,对编程还很陌生。我希望我能解释得更好。我希望你能帮助我。谢谢。

最佳答案

对于像 mmmm 这样的多对组合,您需要对计数器进行双倍递增:

#include <stdio.h>
#include <string.h>
int main()
{
char word[100];
int ctr;
int count = 0;
printf("Enter string: ");
gets(word);
int len = strlen(word);
ctr = 1;
while (ctr<len) {
if (word[ctr-1] == word[ctr])
{
count++;
ctr++;
}
ctr++;
}

printf("%d", count);
return 0;
}

关于c++ - 如何计算连续出现两次的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33823106/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com