[求助]如何把字符串变成数字进行运算
意思就是,假如6514是字符型的,如何让它进行 + - * /运算----------------解决方案--------------------------------------------------------
将每个数字字符减'0'``再乘以相应的位权值``然后再一起相加``就可以了``
比如``6543= ('6'-'0')*1000 + ('5'-'0')*100 + ('4'-'0')*10 + ('3'-'0')*1 ``
还要注意小数部分``
比如``0.12=('0'-'0')*1 + ('1'-'0')*(10^-1) + ('2'-'0')*(10^-2)
----------------解决方案--------------------------------------------------------
/* 此函数暂时只能处理正整数,而且传递给它的字符串必须全部都是数字 */
int to_int(char * p)
{
int n;
int i;
int count;
for(i = count = 0; p[i]; i++)
count = count * 10 + (p[i] - '0');
return count;
}
[此贴子已经被作者于2007-11-8 14:20:47编辑过]
----------------解决方案--------------------------------------------------------
现在已经有样列了```剩下的完善工作```交给LZ自己下来锻炼吧````
----------------解决方案--------------------------------------------------------
int n;
char s = "6514";
sprintf(s,"%d",n); /* n就是整型的了 */
----------------解决方案--------------------------------------------------------
在java里还可以这样做
String str = "6451";
int num = Integer.valueOf(str);
----------------解决方案--------------------------------------------------------
int n;
char s = "6514";
sscanf(s,"%d",&n); /* n就是整型的了 */
....
sprintf是整型转换成字符串吧。。
----------------解决方案--------------------------------------------------------
还可以用atoi系列函数
----------------解决方案--------------------------------------------------------
学习方法
----------------解决方案--------------------------------------------------------
回复:(littlerice)int n;char s =
失误 ,呵呵
----------------解决方案--------------------------------------------------------