如何用C++编程计算一个字符串中0的个数?
时间: 2024-12-06 14:25:23 浏览: 31
在C++中,你可以通过遍历字符串并逐字符检查是否为 '0' 来计算一个字符串中0的个数。这里是一个简单的示例:
```cpp
#include <iostream>
#include <string>
int countZeros(const std::string& str) {
int count = 0;
for (char c : str) {
if (c == '0') {
count++;
}
}
return count;
}
int main() {
std::string input_string = "hello0world0123";
int zero_count = countZeros(input_string);
std::cout << "The number of zeros in the string is: " << zero_count << std::endl;
return 0;
}
```
在这个程序中,`countZeros` 函数接收一个字符串作为参数,然后通过`for-each`循环遍历每个字符。如果字符是 '0',就增加计数器。最后函数返回计数器的值。
相关问题
C++给你若干个字符串,请编程输出每个字符串的子串个数。 输入 若干个字符串,每个字符串占一行,字符串中不含空格,长度最大为1000。 输出 对应每一行的字符串,输出该字符串子串的个数。
好的,这是一个比较经典的字符串问题,我们可以使用暴力枚举的方法来解决。对于每个字符串,我们可以枚举它的所有子串,计算子串的个数并输出即可。以下是代码实现:
```cpp
#include <iostream>
#include <cstring>
using namespace std;
int main() {
string s;
while (getline(cin, s)) { // 循环读入每一行字符串
int n = s.size(); // 字符串长度
int ans = 0; // 子串个数
for (int i = 0; i < n; i++) { // 枚举左端点
for (int j = i; j < n; j++) { // 枚举右端点
ans++; // 子串个数加1
}
}
cout << ans << endl; // 输出子串个数
}
return 0;
}
```
这段代码使用了 `getline` 函数循环读入每一行字符串,然后对于每个字符串,使用两层循环枚举左右端点,计算子串的个数并输出即可。需要注意的是,这里的字符串是使用 `string` 类型表示的,可以直接使用 `size` 函数获取字符串长度。
题目描述 给你若干个字符串,请编程输出每个字符串的子串个数。 输入 若干个字符串,每个字符串占一行,字符串中不含空格,长度最大为1000。 输出 对应每一行的字符串,输出该字符串子串的个数。请使用c++写一段代码
好的,下面是一个 C++ 代码示例:
```cpp
#include <iostream>
#include <string>
using namespace std;
// 计算一个字符串的子串个数
int count_substrings(string s) {
int n = s.length();
int count = 0;
// 枚举所有子串的起点和终点
for (int i = 0; i < n; i++) {
for (int j = i+1; j <= n; j++) {
// 对于每个子串,都累加计数器
count++;
}
}
return count;
}
int main() {
string s;
// 读入多个字符串,每次读入一行
while (getline(cin, s)) {
// 调用 count_substrings 函数并输出结果
cout << count_substrings(s) << endl;
}
return 0;
}
```
这个代码中,我们定义了一个函数 `count_substrings`,用于计算一个字符串的子串个数。在主程序中,我们用一个无限循环来不断读入输入,直到遇到文件结束符 EOF。对于每个读入的字符串,我们调用 `count_substrings` 函数来计算子串个数,并输出结果。注意,在 C++ 中读入一行字符串需要使用 `getline(cin, s)`,其中 `s` 是一个字符串变量。
阅读全文