输入 若干个字符串,每个字符串占一行,字符串中不含空格,长度最大为1000。输出 对应每一行的字符串,输出该字符串子串的个数。C++
时间: 2023-11-30 09:19:08 浏览: 81
可以使用字符串的 `substr` 函数来获取子串,然后利用循环统计子串个数即可。下面是一个示例代码:
```c++
#include <iostream>
#include <string>
using namespace std;
int main() {
const int MAX_SIZE = 100; // 定义字符串数组最大长度
string arr[MAX_SIZE]; // 声明字符串数组
int n; // 字符串数量
cout << "请输入字符串数量:";
cin >> n;
cout << "请输入 " << n << " 个字符串:" << endl;
for (int i = 0; i < n; i++) {
cin >> arr[i]; // 输入字符串
}
cout << "每个字符串子串的个数为:" << endl;
for (int i = 0; i < n; i++) {
int count = 0; // 子串个数
for (int j = 1; j <= arr[i].length(); j++) {
for (int k = 0; k < arr[i].length() - j + 1; k++) {
string subStr = arr[i].substr(k, j); // 获取子串
// 判断子串是否合法,如果合法则计数器加1
if (subStr.find(' ') == string::npos && subStr.length() <= 1000) {
count++;
}
}
}
cout << count << endl; // 输出子串个数
}
return 0;
}
```
在上面的程序中,我们首先定义了一个字符串数组 `arr`,然后通过 `cin` 输入字符串数量 `n`,接着使用 `for` 循环逐个输入字符串。在计算子串个数时,我们使用了两层循环,分别枚举子串长度和起始位置,并使用 `substr` 函数获取子串。需要注意的是,为了避免子串中包含空格或长度超过1000,我们在获取子串后进行了合法性检查。最后,我们使用 `cout` 输出每个字符串子串的个数。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)