输入一个字符串,内有数字和非数字字符,例如:a123x456 17960? 302tab58768。将其中连续的数字作为一个整数,依次存放到数组a中。例如123放在a[0],456放在a[1]……统计共有多少个整数,并输出这些数。要求:用指针方法处理
时间: 2023-06-27 19:07:44 浏览: 71
以下是使用指针方法处理的C语言代码:
```c
#include <stdio.h>
int main() {
char str[100];
int a[100], count = 0;
char *p, *q;
printf("请输入字符串:");
gets(str);
p = str;
while (*p != '\0') {
if (*p >= '0' && *p <= '9') {
q = p + 1;
while (*q >= '0' && *q <= '9') {
q++;
}
int num = 0;
while (p < q) {
num = num * 10 + (*p - '0');
p++;
}
a[count++] = num;
} else {
p++;
}
}
printf("共有%d个整数,它们分别是:\n", count);
for (int i = 0; i < count; i++) {
printf("%d ", a[i]);
}
return 0;
}
```
首先读入字符串,然后用指针p指向字符串的首地址。在循环中,如果p指向的字符是数字,则用指针q查找连续的数字,构成一个整数,并存放到数组a中。如果p指向的字符不是数字,则直接跳过。最后输出数组a中存放的整数即可。
阅读全文