用c语言写给定一个长度为 n 的字符串字符串要按照our顺序,计算our和or字符数并相加
时间: 2024-12-12 18:21:46 浏览: 7
C语言中计算字符串长度与分割字符串的方法
5星 · 资源好评率100%
在C语言中,为了计算给定长度为n的字符串中按"our"顺序计算"our"和"or"字符数并相加,你可以使用一个简单的循环遍历字符串,并维护两个计数器分别记录"our"和"or"的次数。这里假设字符串不含其他特殊字符,只包含大写字母'O', 'u', 'r'。下面是详细的步骤和示例代码:
1. 初始化两个整型变量,ocount("our"的计数)和 ocount("or"的计数)为0。
2. 使用for循环遍历字符串,从索引0到n-1。
3. 检查当前字符,如果它是'o',接下来的字符如果是'u',那么增加'our'的计数(ocount++),否则增加'or'的计数(ocount++)。
4. 如果当前字符是'r',同时前一个字符是'o',再次检查前一个字符,如果是'u',则减少'our'的计数(ocount--),因为我们找到了一个"our"结束;否则增加'or'的计数(ocount++)。
5. 循环结束后,将'our'和'or'的计数相加并返回总和。
这里是相应的C代码:
```c
#include <stdio.h>
int count OurAndOr(char* str) {
int n = strlen(str);
int our_count = 0, or_count = 0;
int prev_char = '\0'; // 初始化前一个字符
for (int i = 0; i < n; i++) {
char current_char = str[i];
// 根据当前和前一个字符更新计数
if (current_char == 'o') {
if (prev_char == 'u') {
our_count++; // "our"
} else if (prev_char != '\0') {
or_count++; // "or"
}
} else if (current_char == 'r') {
if (prev_char == 'o') {
if (prev.prev_char == 'u') { // "our"结束
our_count--;
} else {
or_count++;
}
}
}
// 更新前一个字符
prev_char = current_char;
}
// 返回"our"和"or"的总数
return our_count + or_count;
}
int main() {
char str[] = "exampleoorour"; // 示例字符串
int result = count OurAndOr(str);
printf("our和or字符数之和为: %d\n", result);
return 0;
}
```
阅读全文