[问题分析]在一个字符串内统计含多少整数的问题核心是如何将数从字符串中分离出来从左到右扫描字符串初次碰到数字字符时作为一个整数的开始然后进行拼数即将连续出现的数字字符拼成一个整数直到碰到非数字字符为止一个整数拼完存入数组再准备下一整数如此下去直至整个字符串扫描到结束
int CountInt()// 从键盘输入字符串连续的数字字符算作一个整数统计其中整数的个数
{int i=a[];// 整数存储到数组ai记整数个数
scanf(%c&ch);// 从左到右读入字符串
while(ch!=#)//#是字符串结束标记
if(isdigit(ch))// 是数字字符
{num=0;// 数初始化
while(isdigit(ch)&& ch!=#)// 拼数
{num=num*+ch0;
scanf(%c&ch);
}
a[i]=num;i++;
if(ch!=#)scanf(%c&ch); // 若拼数中输入了#则不再输入
}// 结束while(ch!=#)
printf(共有%d个整数它们是i);
for(j=0;j<i;j++)
{printf(%da[j]);
if((j+)%==)printf(\n);} // 每个数输出在一行上
}// 算法结束
[算法讨论]假定字符串中的数均不超过否则需用长整型数组及变量
[] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []