编写一个程序,将用户输入的由数字字符和非数字字符组成的字符串中的数字提取出来(例如:输入asd123,34fgh_566kkk789,则产生的数字分别是123、34、789(整数))。
**输入格式要求:提示信息:"Please enter a string:"
**输出格式要求:"the result of output:\n" "%10d\n"
程序运行示例如下:
Please enter a string:
abc123def456ghi111bbbccc99go100
the result of output:
123
456
111
99
100
#include <stdio.h>
#include <string.h>
int main() {
printf("%s", "Please enter a string:");
char a[200];
int b[200];
int c[200];
memset(b, 0, sizeof(b));
memset(c, 0, sizeof(c));
scanf("%s", a);
int len = strlen(a);
int temp = 0;
while (a[temp] != '\0') {
char c = (a[temp]);
if (c >= '0' && c <= '9')
b[temp] = 1;
temp++;
}
int tempp = 0;
int temp_loc = 0;
for (int i = 0; i < sizeof(b) / 4-1; i++) {
if (b[i] == 1 ) {
if (b[i + 1] == 1) {
tempp *= 10;
tempp += a[i] - '0';
}
else{
tempp *= 10;
tempp += a[i] - '0';
c[temp_loc]=tempp;
temp_loc++;
tempp = 0;
}
}
}
printf("%s", "the result of output:\n");
for (int i = 0; i < temp_loc; i++) {
printf("%10d\n",c[i]);
}
/*
for (int i = 0; i < sizeof(b)/4; i++) {
printf("%d", b[i]);
}
*/
return 0;
}