请用C语言写一段能够统计字符串中数字个数,并且将字符串中连续的数视作一个多位数,并求平均数的代码给我
时间: 2024-04-13 15:29:21 浏览: 85
C语言实现将字符串转换为数字的方法
当然可以!以下是用C语言编写的代码示例,可以统计字符串中数字个数,将连续的数字视为一个多位数,并求平均数:
```c
#include <stdio.h>
#include <ctype.h>
double count_and_average_numbers(char *string) {
int count = 0;
double total = 0;
double current_number = 0;
int is_number = 0;
for (int i = 0; string[i] != '\0'; i++) {
if (isdigit(string[i])) {
current_number = current_number * 10 + (string[i] - '0');
is_number = 1;
} else {
if (is_number) {
total += current_number;
count++;
current_number = 0;
is_number = 0;
}
}
}
if (is_number) {
total += current_number;
count++;
}
if (count == 0) {
printf("No numbers found in the string.\n");
return 0;
}
double average = total / count;
return average;
}
// 示例用法
int main() {
char input_string[] = "abc123def456";
double result = count_and_average_numbers(input_string);
printf("Average: %.2f\n", result);
return 0;
}
```
在上述代码中,我们定义了 `count_and_average_numbers` 函数,接收一个字符串作为参数。使用 `for` 循环遍历字符串中的每个字符,如果字符是数字,则将其转换为整数,并将其添加到 `current_number` 变量中。如果遇到非数字字符,则将 `current_number` 的值累加到 `total` 中,并将 `count` 计数加1,然后将 `current_number` 重置为0。
最后,我们在循环结束后再次检查 `is_number` 的值,以处理字符串末尾的数字。如果 `count` 的值为0,则打印相应的提示信息。
示例用法展示了如何调用该函数并打印结果。
希望这段代码能满足你的需求,如果还有其他问题,请随时提问!
阅读全文