帮我检查这段代码,并且改正#define _CRT_SECURE_NO_WARNINGS 1 //107 编程7:参考教材182页例题5,编写函数count,统计某个字符在字符串中出现的次数(不区分大小写)。 //例如: count("abAbc", 'a') 应返回2,count("abAbc", 'x') 应返回0 #include<iostream> using namespace std; int tongji(char* p, char c) { int t = 0; while (*p) { if (*p == c||*p==c+32) { t++; } p++; } return t; } int main() { char a[100], char c; cout << "请输入字符串:"; cin.get(a, 100); cout << "请输入统计的字母(不区分大小写):"; cin >> c; tongji(a, c); return 0; }
时间: 2023-06-25 08:07:23 浏览: 93
以下是修改后的代码:
```
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;
int count(char* p, char c) {
int t = 0;
while (*p)
{
if (*p == c || *p == c + 32 || *p == c - 32) // 忽略大小写,判断字符相等
{
t++;
}
p++;
}
return t;
}
int main() {
char a[100], c;
cout << "请输入字符串:";
cin.getline(a, 100); // 使用 getline() 读取一行字符串,避免输入含有空格的字符串时出现问题
cout << "请输入统计的字母(不区分大小写):";
cin >> c;
cout << "出现次数为:" << count(a, c) << endl;
return 0;
}
```
修改说明:
1. 去掉了 "#define _CRT_SECURE_NO_WARNINGS 1" 的后面的 "1",这个宏定义是为了解决 Visual Studio 编译器的警告问题,在这里不需要。
2. 将函数名从 "tongji" 改为 "count",使其更符合英文语法规范。
3. 在函数中增加了忽略大小写的功能。
4. 在主函数中使用 cin.getline() 读取一行字符串,避免输入含有空格的字符串时出现问题。
5. 在主函数中输出统计结果。
阅读全文