用c++编写一函数,用该函数可以统计一个长度为3的字符串在另一个字符串中出现的次数
时间: 2023-05-22 20:02:58 浏览: 253
可以使用以下函数实现:
```c
int countSubstring(char *str, char *substr) {
int count = 0;
char *pos = str;
while ((pos = strstr(pos, substr)) != NULL) {
++count;
pos += strlen(substr);
}
return count;
}
```
调用该函数方式如下:
```c
int main() {
char str[] = "hello world, world is beautiful";
char substr[] = "world";
int count = countSubstring(str, substr);
printf("%d\n", count); // 输出 2
return 0;
}
```
上述代码用于计算字符串中出现的次数,输入指向字符串位置的 `str` 以及需要检查的字符串位置 `substr`,并返回出现的次数 `count`。
相关问题
编写一个函数,该函数可以统计一个长度为3的字符串在另一个字符串中出现的次数。用c++
在C++中,你可以编写一个名为`countTriplet`的函数来实现这个功能。这里是一个简单的例子:
```cpp
#include <string>
int countTriplet(const std::string& mainStr, const std::string& subStr) {
int count = 0;
for (size_t i = 0; i <= mainStr.length() - 3; i++) { // 遍历主字符串,跳过超过长度3的部分
if (mainStr.substr(i, 3) == subStr) { // 检查子字符串是否匹配
count++;
}
}
return count;
}
// 示例用法:
std::string mainString = "Hello World, this is a test string";
std::string subString = "is a";
int occurrences = countTriplet(mainString, subString);
std::cout << "子串 \"" << subString << "\" 在主串中出现了 " << occurrences << " 次。\n";
```
这个函数通过遍历主字符串,每次检查从当前位置开始的连续三个字符是否等于子字符串。如果是,则计数器加一。最后返回计数作为结果。
编写一个函数,该函数可以统计一个长度为3的字符串在另一个字符串中出现的次数。用c++
在 C++ 中,你可以编写一个名为 `count_trigram` 的函数,用于统计一个长度为 3 的子串 (三元组) 在另一个较长的字符串中出现的次数。下面是一个简单的示例:
```cpp
#include <string>
int count_trigram(const std::string& main_str, const std::string& trigram) {
int count = 0;
for (size_t i = 0; i <= main_str.size() - trigram.size(); ++i) {
if (main_str.substr(i, trigram.size()) == trigram) {
count++;
}
}
return count;
}
// 示例用法
std::string long_string = "这是一个包含许多重复三元组的长字符串";
std::string trigram_to_search = "包含";
int occurrences = count_trigram(long_string, trigram_to_search);
std::cout << "三元组 \"" << trigram_to_search << "\" 在长字符串中出现了 " << occurrences << " 次。\n";
```
这个函数通过遍历 `main_str` 并检查每个长度为 `trigram` 的子串是否等于 `trigram_to_search` 来计算出现次数。
阅读全文