#include <stdio.h>
#include <string.h>
void fac() {
char str1[50],* p;
int temp,sum=0,i=0,str2[50];
printf("input str1:\n");
/*scanf("%s", str1);*/// scanf()函数获取字符串遇到空格结束输入
gets(str1);
for (p =str1; p<str1+ strlen(str1); p++)
{
if (*p >= '0' && *p <= '9')
{
temp = 0;//临时变量,每次清零;
temp = *p - '0';//将字符数字转换成整型数字
if (*(p+1)>='0'&& *(p+1)<='9')
sum = (sum + temp) * 10;
else//如果下一个不是数字,则当前字符是整数的个位,不乘10
sum+=temp,
str2[i] = sum,//并且将找到的整数存到整型数组里面
i++,
sum = 0;//sum清零,以便记录下一个整数
}
}
printf("\nresult:\n");
for (int *q=str2; q<(str2+i); q++)
printf("%d ",*q);
}
int main() {
fac();
return 0;
}
输入一个字符串,内有数字和非数字字符,例如: A123x456 17960? 302tab5876 将其中连续的数字作为一个整数,依次存放到一数组a中。例如,123放在a[0],456放在a[1]……
于 2024-01-03 20:03:44 首次发布