#include <stdio.h>
int main(){
int i,n,j=0;
long a[100];
//还可以用指针读去字符串,读者可以自行尝试
//输入字符串长度
scanf("%d",&n);
char c[n];
for(i = 0;i < n;i++){
scanf("%c",&c[i]);
}
//显示字符串
for(i = 0;i < n;i++){
printf("%c\t",c[i]);
}
printf("\n");
for(i = 0;i < n;i++){
//判断是否是数字
if(c[i] >= '0'&&c[i] <= '9'){
long int t =0;
//是数字的话进行提取
while(c[i] >= '0'&&c[i] <= '9'){
//long t =0;
t=t*10+c[i]-'0';
i++;
}
//将提取到的数字放入数组中,并进行了计数
a[j++]=t;
printf("%d\n",t);
}//若遇到负号单独进行处理
else if(c[i]=='-'){
long t = 0;
i++;
while(c[i] >= '0'&&c[i] <= '9'){
t=t*10+c[i]-'0';
i++;
}
//将提取到的负数放入数组中
a[j++] = -t;
printf("%d\n", -t);
}
}
//输出数组
for(i = 0;i < j;i++){
printf("a[%d]:%d\t",i,a[i]);
}
printf("\n%d",j);
}
运行结果测试: