您的位置:首页 > 编程语言 > C语言/C++

C语言学习笔记―08-02

2013-08-02 18:44 162 查看
练习2-3,编写函数htoi(s),把十六进制的字符串转换为整数值。

#include <stdio.h>
#include <string.h>
#include <math.h>
#include <ctype.h> //测试用函数
int htoi(char s[]); // 函数原型
main()
{
printf("%d\n", htoi("0xffff"));
}
int htoi(char s[])
{
int c = 0;
int i = strlen(s) - 1;
int copy_i = i;
int di = 0;
while (s[i] != 'x' && di <= copy_i)
{
if (isdigit(s[i]))
c += (int)(s[i]) * pow(16, di);
else
c += ((tolower((int)(s[i])) - 87) * pow(16, di)); \\发现不是数字,转换为16进制值
i--; \\是i减减
di++;
}
return c;
}


用gcc编译时要在末尾加上 -lm 选项,链接数学库,否则pow函数会报错。

本文出自 “タイムマシん” 博客,请务必保留此出处http://skyraker.blog.51cto.com/6443116/1263136
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: