用c++写题目:请编写一个函数fun,它的功能是:州除宁特串中的数字字 符。例如输入宁符串:4SCTYF9EG, mL: CTTE.
时间: 2024-02-27 19:53:25 浏览: 158
以下是用 C++ 实现的代码:
```cpp
#include <iostream>
#include <string>
using namespace std;
string fun(string s) {
string result = "";
for (char c : s) {
if (!isdigit(c)) {
result += c;
}
}
return result;
}
int main() {
string s = "4SCTYF9EG, mL: CTTE.";
string result = fun(s);
cout << result << endl; // 输出:SCTYFEG, mL: CTTE.
return 0;
}
```
函数 `fun` 的参数是一个字符串 `s`,返回一个新的字符串,其中去掉了原字符串中的数字字符。具体实现是遍历原字符串中的每一个字符,如果是数字字符则不加入结果字符串中,否则加入。主函数中演示了如何调用 `fun` 函数并输出结果。
相关问题
C++题目54:统计一个字符串 编写程序用于统计一个字符串中字母、数字、空格以及其它字符的个数。在主函数中输入字符串后,调用函数:void fun(char *p, int n),并输出统计结果。要求用指针实现。 【输入形式】 一个字符串(回车结束); 【输出形式】 字符串中字母、数字、空格以及其它字符的个数统计结果(输出数据之间用逗号分隔);
好的,这道题目可以使用指针来实现字符串的遍历,然后统计各个字符的个数。以下是代码实现:
```c++
#include <iostream>
#include <cstring>
using namespace std;
void fun(char *p, int n)
{
int letter = 0, digit = 0, space = 0, other = 0;
for(int i=0; i<n; i++)
{
if(*(p+i)>='a' && *(p+i)<='z' || *(p+i)>='A' && *(p+i)<='Z')
{
letter++;
}
else if(*(p+i)>='0' && *(p+i)<='9')
{
digit++;
}
else if(*(p+i)==' ')
{
space++;
}
else
{
other++;
}
}
cout << "字母个数:" << letter << ", 数字个数:" << digit
<< ", 空格个数:" << space << ", 其他字符个数:" << other << endl;
}
int main()
{
char str[100];
cout << "请输入一个字符串:" << endl;
cin.getline(str, 100);
int n = strlen(str);
fun(str, n);
return 0;
}
```
运行结果:
```
请输入一个字符串:
Hello World! 123
字母个数:10, 数字个数:3, 空格个数:2, 其他字符个数:1
```
题目名称:计算级数和 题目描述:编写函数fun,它的功能是:计算并输出下列级数和: Sn=1/1 + 1/2+1/3+.....+1/n; 用C++完成 样例输入: 10 样例输出: 2.92897
你可以使用以下C++代码来计算并输出下列级数和:
```cpp
#include <iostream>
double fun(int n) {
double sum = 0.0;
for (int i = 1; i <= n; i++) {
sum += 1.0 / i;
}
return sum;
}
int main() {
int n;
std::cout << "请输入n的值:";
std::cin >> n;
double result = fun(n);
std::cout << "Sn的值为:" << result << std::endl;
return 0;
}
```
运行该程序,输入n的值,即可计算并输出Sn的值。
注意:由于级数是无限求和的,所以当n取较大时,结果可能会无限接近一个常数(即欧拉常数e),但不会准确等于该常数。所以你提供的示例输出结果2.92897只是一个近似值。
阅读全文