C++编写任意输入一个字符串统计其中字母a与字母i的个数
时间: 2023-08-27 22:06:49 浏览: 97
你好啊!关于你的问题,我可以帮你。以下是C语言的代码,可以统计输入字符串中字母a和字母i的个数:
```
#include <stdio.h>
int main() {
char str[100];
int a_count = 0, i_count = 0;
printf("请输入字符串:");
scanf("%s", str);
for(int i = 0; str[i] != '\0'; i++) {
if(str[i] == 'a' || str[i] == 'A') {
a_count++;
} else if(str[i] == 'i' || str[i] == 'I') {
i_count++;
}
}
printf("字符串中字母a的个数是:%d\n", a_count);
printf("字符串中字母i的个数是:%d\n", i_count);
return 0;
}
```
希望这个回答可以帮到你。还有什么其他问题吗?
相关问题
c++1.编写一个程序,键盘任意输入一行不含空格的字符(字符数小于30),输出该字符串的长度,并统计其中大写字母、小写字母和数字的个数。 要求:将求字符串长度的过程单独写成一个函数。
好的,以下是实现该程序的 C++ 代码:
```cpp
#include <iostream>
#include <cstring>
using namespace std;
int getLength(char str[]) {
int len = 0;
while (str[len] != '\0') {
len++;
}
return len;
}
int main() {
char str[30];
cout << "请输入不含空格的字符串:";
cin >> str;
int len = getLength(str);
cout << "该字符串长度为:" << len << endl;
int upperCount = 0, lowerCount = 0, digitCount = 0;
for (int i = 0; i < len; i++) {
char ch = str[i];
if (ch >= 'A' && ch <= 'Z') {
upperCount++;
} else if (ch >= 'a' && ch <= 'z') {
lowerCount++;
} else if (ch >= '0' && ch <= '9') {
digitCount++;
}
}
cout << "其中大写字母个数为:" << upperCount << endl;
cout << "其中小写字母个数为:" << lowerCount << endl;
cout << "其中数字个数为:" << digitCount << endl;
return 0;
}
```
程序中定义了一个 `getLength()` 函数,用于计算字符串的长度。在 `main()` 函数中,先读入一个字符串,然后调用 `getLength()` 函数求出字符串长度,最后遍历字符串统计大写字母、小写字母和数字的个数。
需要注意的是,程序假设输入的字符串长度不超过 30,因此数组 `str` 的长度为 30。如果输入的字符串长度超过 30,程序可能会出现数组越界的错误。
1.编写一函数实现对起始地址是a,长度是n的整型数组从小到大排序。函数原型为:void sort(int *a, int n); 2.编写一个函数,接收一个字符串,统计其中任意两个及两个以上相邻字符相同的子串的个数。比如字符串"abbcccaddd"子串有"bb"、"cc"、"cc"、"dd"、"dd"、"ccc"和"ddd",共7个。函数原型为:int fun(const char *str); 3.编写一个函数,接收一个字符串,统计其中数字字符个数及字母字符个数。函数原型为:void fun(const char *str, int* char_N, int* letter_N);
好的,我可以回答你的问题。
1. 实现对整型数组从小到大排序的函数可以使用冒泡排序算法,代码如下:
```C++
void sort(int *a, int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (a[j] > a[j + 1]) {
int temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
}
```
2. 统计子串个数的函数可以使用双重循环,在内循环中判断相邻字符是否相同,如果相同则计数器加一。代码如下:
```C++
int fun(const char *str) {
int cnt = 0;
int len = strlen(str);
for (int i = 0; i < len; i++) {
for (int j = i + 1; j < len; j++) {
if (str[j] == str[j - 1]) {
cnt++;
} else {
break;
}
}
}
return cnt;
}
```
3. 统计数字字符个数和字母字符个数的函数可以使用循环遍历字符串,判断每个字符是否为数字或字母,如果是则对应计数器加一。代码如下:
```C++
void fun(const char *str, int* char_N, int* letter_N) {
*char_N = 0;
*letter_N = 0;
int len = strlen(str);
for (int i = 0; i < len; i++) {
if (isdigit(str[i])) {
(*char_N)++;
} else if (isalpha(str[i])) {
(*letter_N)++;
}
}
}
```
希望以上答案能对你有所帮助!
阅读全文