atof函数的实现 查找最长数字子串

来源:互联网 发布:冬季男士乳液推荐知乎 编辑:程序博客网 时间:2024/05/17 04:26

 

 atof的实现

 

#include <iostream>using namespace std;double my_atof(const char * str){double res = 0.0;double d = 10.0;bool flag = false;while (*str == ' '){str++;}if (*str == '-'){flag = true;str++;}if (!(*str <= '9') || !(*str >= '0')){cout << "非数字串" << endl;}while (*str <= '9' && *str >= '0' && *str != '.'){res = res * 10  + (*str) - '0';str++;}if (*str == '\0')return res * (flag ? -1.0 : 1.0);if (*str == '.'){str++;}while (*str <= '9' && *str >= '0' && *str != '\0'){res = res  + ((*str) - '0') / d;d *= 10.0;str++;}return res * (flag ? -1.0 : 1.0);}int main(){char *test1 = "   -123.342";cout << my_atof(test1) << endl;system("pause");return 0;}
查找最长数字子串

#include <iostream>using namespace std;int maxContinueNumber(const char * src, char * dst){int start = 0;int end = 0;int max = 0;int startTmp = 0;int maxTmp = 0;int cur = 0;int length = strlen(src);char * tmp = dst;for (; cur < length; cur++){if (*(src + cur) <= '9' && *(src + cur) >= '0'){if (maxTmp == 0){startTmp = cur;}maxTmp++;}else{if (maxTmp > max){start = startTmp;end = cur;max = maxTmp;maxTmp = 0;}}}if (maxTmp > max){start = startTmp;end = cur;max = maxTmp;maxTmp = 0;}for (int i = start; i < end; i++){*dst++ = src[i];}*dst = '\0';cout << tmp << endl;return max;}int main(){char test[] = "abc123ad12345";char tmp[100] = "";cout << maxContinueNumber(test, tmp) << endl;system("pause");return 0;}


                                                                                                                                                                                                                                                                                                                       

 

 

 

 

 

原创粉丝点击