题目要求: 输入字符串,把其中的整数提取出来,放在一个新的数组中,统计有多少个整数,并输出这些数。 小记: 本人最近在学习谭浩强经典C语言教材,此题目为谭浩强《C程序设计》第8章,16题。谭老的解写得比较繁琐,故我自己写了一个笔记做回顾。 程序如下:
#include
#include
int main() {
char str[80] = "00fs2jjksf0jsf 232.sfdjk,";
int a[20], i, m;
int find_num(int *a, char *str);
m = find_num(a, str);
for(i = 0; i
int i, k, sum = 0, flag = 0,m = 0;
//i记录循环次数
//sum存放连在一起所有数的值
//k记录提取的单个数的值
//flag记录当前是否为数字
//m记录a[]的下标,存放数字到a数组中
for(i = 0; i
flag = 1;
k = str[i] - '0';
} else {
//flag为1说明,前一位是数字,而现在已不是数字
//故把计算的sum放入数组中,一组连在一起的数字判断完成
if (flag == 1) {
a[m++] = sum;
}
//复位
flag = 0;
sum = 0;
}
//若为数字,则计算连在一起的数字的值
if (flag == 1) {
sum = sum * 10;
sum += k;
}
}
//返回个数
return m;
}
|