输入一个字符串,内有数字和非数字字符,如:a123x456 17960?302tab5876将其中连续的数字作为一个整数,依次存放到数组a中。例如,123放在a[0]中,456放在a[1]中等等,统计共有多少个整数 ,并输出这些数。c语言指针
时间: 2024-06-09 22:10:31 浏览: 136
下面是用 C 语言实现上述功能的示例代码:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LEN 1000 // 定义字符串的最大长度
int main()
{
char str[MAX_LEN]; // 定义字符串变量
int a[MAX_LEN]; // 定义整数数组
int i = 0, j = 0, k = 0; // 定义循环变量和数组下标
int len = 0; // 定义字符串长度
printf("请输入字符串:");
scanf("%s", str); // 输入字符串
len = strlen(str); // 获取字符串长度
// 遍历字符串中的每个字符
for (i = 0; i < len; i++) {
// 如果遇到数字,就将数字存入 a 数组
if (str[i] >= '0' && str[i] <= '9') {
a[k] = a[k] * 10 + (str[i] - '0'); // 将数字存入数组
}
// 如果遇到非数字字符,就将 k 变量加 1,表示下一个数字的开始
else {
k++;
}
}
// 输出结果
printf("字符串中共有%d个整数:\n", k + 1);
for (j = 0; j <= k; j++) {
printf("%d ", a[j]);
}
printf("\n");
return 0;
}
```
上述代码的思路是:遍历字符串中的每个字符,如果遇到数字,就将数字存入数组;如果遇到非数字字符,就将数组下标加 1,表示下一个数字的开始。最
阅读全文