查询字符串中最长数字的长度及数字

来源:互联网 发布:周清扬的淘宝店铺名 编辑:程序博客网 时间:2024/06/05 03:02
这儿有几个没有搞明白的问题,看主函数处的:char *num = des;  // 如果换成  char *num = "0"; 或 char *num = "0"; 都不可以呢?这句。
/* 查询字符串中最长数字的长度及数字 */#include<stdio.h>#include<stdlib.h>#include<string.h>//查询字符串中最长数字的长度及数字void findNum(char *str, char **ppos, int *length){char *pstr = str;char *ptemp;int sum =0;while (*pstr != '\0'){//如果不是数字就跳过while ((*pstr <'0' || *pstr>'9') && *pstr != '\0'){ pstr++;}//记录查询到的数字if (*pstr >= '0' && *pstr <= '9'){//pos:开始处ptemp = pstr;int temp = 0;while (*pstr >= '0' && *pstr <= '9'){pstr++;temp++;}if (temp > sum){sum = temp;//printf("*ppos:%p\n", *ppos);*ppos = memcpy(*ppos, ptemp, sum); //把查询到的内容拷贝到*ppos中//printf("*ppos:%p\n", *ppos);}}}*length = sum; //记录最长字符的数值}void main(){char str[] = "abc12356abc09876543210abc789q";char des[50] = "0"; //des:是常量不能修改指向。//num:保存字查询到的最长字符串char *num = des;  // 如果换成  char *num = "0"; 或 char *num = "0"; 都不可以呢?//char *num = "0";  1:处//char *num ;2:处int length ;//记录数字的长度printf("  num:%p\n", num);findNum(str, &num, &length);printf("%s,%d\n", num, length);/*char *p = "0";char a[10] = "123";p = a;printf("%s\n", p);*/system("pause");}

0 0
原创粉丝点击