请讲解一个这个C语言程序,输入一个字符串,内含数字和非数字字符 输出整数 并输出有多少个整数

2024-10-29 20:05:20
推荐回答(2个)
回答1:

#include //这行不解释 
int getNum(char *s, int a[]) //同上
{ //继续同上
 int i, f, c; //依然同上
 for(i = f = c = 0; s[i]; i++)  //难点在最开始的初始化,中间的条件为s[i]为假时结束
  if('0' <= s[i] && s[i] <= '9')  //判定s[i]的取值范围
   if(f)
    a[c - 1] = a[c - 1] * 10 + s[i] - '0'; //这里是转换字符到整型
   else 
   {
    f = 1;
    a[c++] = s[i] - '0';//同上
   }  
   else
    f = 0; //同上不解释
   return c;//返回结果
}
int main()//这个不懂就不要写C语言了
{ int i, c, a[200];//-_-b
 char s[200];//+1
 
 gets(s); //……
 c = getNum(s, a);//通过函数返回整型存入变量
 printf(" %d\n",c);//给我输出吧,骚年!
 for(i = 0; i < c; i++)//来,轮一个
  printf("%d\n", a[i]); //结果就在这里了。
 return 0;//Bye
}

回答2:

//#include "stdafx.h"//vc++6.0加上这一行.
#include "stdio.h"
#include "string.h"
int main(void){
char a[1000];
int i,ln,Dec,n,x;
printf("Type a string...\n");
gets(a);
for(ln=strlen(a),x=n=i=0;i if(a[i]>='0' && a[i]<='9'){
sscanf(a+i,"%d%n",&Dec,&n);
x++;
(i+=n)--;
printf("%d ",Dec);
}
}
printf("\nA total of %d integer(s).\n",x);
return 0;
}