编写函数int parse(char *str, int *num),用户输入的字符串中包含有若干个数字,要求通过该函数将数字提取出来,并返回数字个数。
输入样例
@@23%%78^^9%%45
输出样例
Total 4 numbers:
23 78 9 45
#include<stdio.h>
int parse(char *str,int *num){
int k=0;
for(int i=0;str[i]!=0;i++){
if(str[i]>='0'&&str[i]<'9'){
num[k]=str[i];
k++;
}
}
return k;
}
int main(){
char str[999];
int a[999];
printf("请输入一串字符");
gets(str);
parse(str,a);
printf("总共有%d个数字",parse(str,a));
puts(a);
return 0;
}
修改如下,供参考:
#include<stdio.h>
int parse(char *str,int *num)
{
int k,i,flg;
for(i=0,flg=1,k=0;str[i]!='\0';i++)
{
if(str[i]>='0'&&str[i]<='9'){
num[k] = num[k]*10 + str[i]-'0';
flg = 0;
if(str[i+1] == '\0')
{
k++;
flg = 1;
}
}
else if(flg == 0){
k++;
flg = 1;
}
}
return k;
}
int main(){
char str[999];
int a[999]={0},k=0,i;
printf("请输入一串字符");
gets(str);
k = parse(str,a);
printf("Total %d numbers:\n",k);
for(i=0;i<k;i++)
printf("%c%d",i==0?'\r':' ',a[i]); //puts(a);
return 0;
}
a又不是字符数组,当然不能用puts输出啦
你这个函数也不对,只是统计有多少个数字,不是多少个整数