早上快十点,宿管阿姨带着几个大叔,破门而入! --查水表
要不估计还起不来呢,起来以后做了这样一道题目
-
/****************************************************
-
1. 字符串提取数字
-
完成函数
-
void take_num(const char *strIn, int *n, unsigned int *outArray)
-
输入
-
strIn="ab00cd+123fght456-25 3.005fgh"
-
输出
-
n=6
-
outArray={ 0, 123, 456, 25, 3, 5 }
-
(不考虑小数:如3.005输出3和5)
-
**********************************************************/
-
-
#include<stdio.h>
-
#include<string.h>
-
/****************************************************************
-
编程思路:
-
一.从开始历遍,直到遇到数字
-
二.遇到数字后开始进行字符串转换为整数,知道遇到下一个字符不是数字
-
***************************************************************/
-
-
void take_num(const char *strIn, int *n, unsigned int *outArray)
-
{
-
int i, j, sum, len;
-
-
j = 0;
-
len = strlen(strIn);
-
-
for(i = 0; i < len; )
-
{
-
// sum = 0;
-
if((strIn[i] <= '9') && ((strIn[i]) >= '0'))
-
{
-
outArray[j] = 0;
-
while((strIn[i] <= '9') && ((strIn[i]) >= '0'))
-
{
-
outArray[j] = outArray[j] * 10 + strIn[i] - '0';
-
i++;
-
}
-
j++;
-
}
-
else
-
i++;
-
}
-
-
*n = j;
-
}
-
-
int main(int argc, char **argv)
-
{
-
int n, i;
-
unsigned int outArray[100] = {0};
-
char *strIn="ab00cd+123fght456-25 3.005fgh";
-
-
take_num(strIn, &n, outArray);
-
-
printf("n = %d \n", n);
-
-
for(i = 0; i < n; i++)
-
printf("outArray[%d] = %d\n", i, outArray[i]);
-
-
while(1);
-
-
}
阅读(966) | 评论(0) | 转发(0) |