整数字符串转换

来源:互联网 发布:一部电脑一个网络端口 编辑:程序博客网 时间:2024/05/17 16:54
#include<stdio.h>//"12345"转12345//12345转"12345"int ToNum(char *str){char *istr = str;//保留副本int num = 0;while (*str!='\0')//当字符串等于\0的时候就结束了{if (*str<'0' || *str>'9')//如果不是数字,返回-1,转换失败{return -1;}//printf("%c\n",*str);//取出每一个字符*str++;//地址先++,再根据地址取出数据,str和++先结合num++;//求出位数}printf("%d\n",num);int lastres = 0;//最终结果for (int i = 0; i < num; i++){lastres *= 10;int EveryDigit = istr[i] - 48;//str[1]是'1',是49lastres += EveryDigit;printf("每一位上的数字是%d\n",EveryDigit);}return lastres;}void main2()//字符串转换成数字{char str[10] = "1234567";int num = 0;printf("%d\n", ToNum(str));system("pause");}void main1(){printf("%d,%c\n", 1, '1');//1数字 '1'字符printf("%d,%c\n",'1',1);//'1'代表'1'的ASC码编号49,1 ASC码编号001对应的SQHprintf("%d",'1'-1);//等于48getchar();}void main3()//数字转换成字符串{int num = 1234567;char str[10] = { 0 };//编号为0的字符,初始化字符串int digits = 0;for (int inum = num; inum; inum /= 10){digits++;}printf("digits=%d\n",digits);//for (; num; num /= 10)//{//printf("%d", num % 10);//逆序输出//}for (int i = digits-1; num; num /= 10, i--)//把num%10倒序存入str[i]{str[i] = num % 10 + 48;printf("%d,i=%d\n", num%10, i);}printf("%s",str);/*for (int i = 0; i < digits; i++){printf("\n%c",str[i]);}getchar();*/}void ToStr(int num, char *str)//把上面的整数转字符串封装成函数{int digits = 0;for (int inum = num; inum; inum /= 10)//注意是/=不是/{digits++;}printf("这个数字有%d位",digits);for (int i=digits-1;num;num/=10,i--)//注意是/=不是/{str[i] = num % 10 + 48;}}void main()//使用ToStr函数{int a = 123456;char str[10] = { 0 };ToStr(a, str);printf("%s", str);getchar();}

原创粉丝点击