一个简单的C语言题目

来源:百度知道 编辑:UC知道 时间:2024/05/18 03:40:26
不要太繁的,最好有注释
问题在这里啊!!!!!!!!!!!!!!!!!!!!!
现有一字符串,包括数字、字母和空格。现需要提取其中有多少个连续的数字,并将这些数字作为整数保存在数组中。
输入
由字母、数字、空格组成的字符串
输出
连续数字的个数,并输出这些数字
具体输出参看测试用例
测试用例 0
测试输入 a88bb99 cc77de

期待的输出There are 3 numbers.
They are 88,99,77.

/*通过gcc编译*/
#include <stdio.h>
#include <string.h>

int isdigit(char t)
{
return( t>='0'&&t<='9');
}

int main()
{
char line[256];
int i,length,totalNumber,result[256];
int prvIsDigit;

while(1)
{
gets(line);
if(line[0]=='\0') break;
/*如果输入空行的话就退出程序*/

totalNumber=0;
length=strlen(line);

/*通过如果当前字符是数字那么通过判断前一个字符是不是数字来判断当前数字的输入是否断开*/
prvIsDigit=0;
for(i=0;i<length;++i)
if(isdigit(line[i]))
{
if(prvIsDigit) result[totalNumber-1]=result[totalNumber-1]*10+line[i]-'0';
else result[totalNumber++]=line[i]-'0';
prvIsDigit=1;
}
else prvIsDigit=0;

/*输出结果*/
if(totalNumber>1)
{
pr