编写一个C++程序编写一个子函数int fun(char* s),其功能是:将形参s所指字符串中的数字字符转换成对应的数值,计算出这些数值的累加和作为函数值返回, 在主函数中进行验证。 例如,形参s所指的字符串为abs5def126jkm8,程序执行后的输出结果为22。
时间: 2024-02-13 14:05:47 浏览: 74
下面是这个程序的代码:
```cpp
#include <iostream>
using namespace std;
int fun(char* s){
int sum = 0;
while(*s != '\0'){ // 遍历字符串
if(*s >= '0' && *s <= '9'){ // 如果是数字字符
sum += (*s - '0'); // 将字符转换成数字并累加到sum中
}
s++; // 指针后移
}
return sum;
}
int main(){
char s[] = "abs5def126jkm8";
int sum = fun(s);
cout << sum << endl; // 输出累加和
return 0;
}
```
程序中的`fun`函数使用了指针遍历字符串,并在遍历过程中判断每个字符是否是数字字符。如果是数字字符,则将其转换成数字并累加到`sum`变量中。最后,`fun`函数返回`sum`作为累加和。
在主函数中,我们可以定义一个字符串`s`,并将其作为实参调用`fun`函数。函数返回的累加和可以通过输出语句显示出来。
相关问题
编写一个子函数int fun(char* s),其功能是:将形参s所指字符串中的数字字符转换成对应的数值,计算出这些数值的累加和作为函数值返回, 在主函数中进行验证。 例如,形参s所指的字符串为abs5def126jkm8,程序执行后的输出结果为22。
好的,我来为您编写这个子函数和主函数。
```c++
#include <stdio.h>
int fun(char* s) {
int sum = 0;
while (*s != '\0') {
if (*s >= '0' && *s <= '9') {
sum += *s - '0';
}
s++;
}
return sum;
}
int main() {
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
int result = fun(str);
printf("数字字符的累加和为:%d\n", result);
return 0;
}
```
在这个程序中,我们首先定义了一个`fun`函数,它的参数是一个指向字符数组的指针,返回值是累加和。
在`fun`函数中,我们使用了一个`while`循环来遍历字符串中的每一个字符。如果这个字符是数字字符,那么我们就将它转换成对应的数值,并累加到`sum`中。
在主函数中,我们首先定义了一个字符数组`str`,然后通过`scanf`函数读入一个字符串。接下来,我们调用`fun`函数计算数字字符的累加和,并将结果输出。
编写一个程序,由函数main和函数fun组成。函数fun(chars, int t)功能是:统计形参s所指字符串中''字符出现的次数,并存放在形参t所指的变量中,最后在主函数中输出
以下是C++语言的代码实现:
```C++
#include <iostream>
#include <cstring>
using namespace std;
void fun(char *chars, int *t) {
int count = 0;
for (int i = 0; i < strlen(chars); i++) {
if (chars[i] == '\'') {
count++;
}
}
*t = count; // 将计数器赋值给t所指的变量
}
int main() {
char str[] = "Hello, 'world'! How 'are' you?";
int count = 0;
fun(str, &count); // 调用函数fun,并将count的地址传递给形参t
cout << "The number of ' in the string is: " << count << endl;
return 0;
}
```
输出结果:
```
The number of ' in the string is: 4
```
说明:以上代码中,函数fun的形参使用指针类型,可以在函数内部修改实参的值,即将计数器count的值赋给形参t所指向的变量。在主函数中,将字符串和计数器count作为实参传递给函数fun,并输出统计结果。
阅读全文