htoi的实现

 /*************************************************************************
> File Name: htoi.c
> Author: ChenPeng
> Mail:479103815@qq.com
> Blog: http://www.cnblogs.com/cpsmile/
> Created Time: Fri 03 Apr 2015 07:22:15 PM CST
************************************************************************/
#include<stdio.h>
#include<stdlib.h> #define YES 1
#define NO 0 /*将十六进制数字组成的字符串转换为与之等价的整型值*/
int htoi(char *str)
{
int hexdigit;//记录每一个十六进制数对应的十进制数
int i;//工作指针
int ishex;//是否是有效的十六进制数
int n;//返回的十进制数 i= ;
if(str[i] == '')
{
++i;
if(str[i] == 'x' || str[i] == 'X')
++i;
}
n = ;
ishex = YES;
for(; ishex == YES; ++i)
{
if(str[i] >= '' && str[i] <= '')
hexdigit = str[i] - '';
else if(str[i] >= 'a' && str[i] <= 'f')
hexdigit = str[i] - 'a' + ;
else if(str[i] >= 'A' && str[i] <= 'F')
hexdigit = str[i] - 'A' + ;
else
ishex = NO;
if(ishex == YES)
n = * n + hexdigit;
}
return n;
} int main()
{
char str[] = "";
int val;
while(printf("Please enter a hex string:\n"),scanf("%s",str) == )
{
val = htoi(str);
printf("整数是:%d\n",val);
}
return ;
}

htoi的实现的更多相关文章

  1. 练习2-3:十六进制数字字符串转换为等价整型值,字符串允许包含的数字包括:0~9、a~f、A~F、x、X(C程序设计语言 第2版)

    #include <stdio.h> #include <string.h> #include <math.h> int htoi(char s[]){ unsig ...

  2. The C Programming Language (second edition) 实践代码(置于此以作备份)

    1. #include <stdio.h> #include <stdlib.h> #include <math.h> #include<time.h> ...

  3. HTTP CHUNKED C实现

    C语言不像C#一样有很多很多高度的模块化的东西可以使用,在通讯过程中特别是与http相关的通讯过程中可能要对网站返回的数据做一定处理,而且有不少网站的回应是强制性的,例如向网站请求deflate有个能 ...

  4. 《c程序设计语言》读书笔记-十六位进制数转十进制

    #include <stdio.h> #include <stdio.h> int htoi(char s[]); main() { char s1[] = "10& ...

  5. 十六进制转十进制 - C

    我们经常碰到16进制数转10进制的情况,使用下面的C程序即可完成上述工作. 那么他是怎样的工作原理呢? 6.2.5 十六进制数转换成十进制数 16进制就是逢16进1,但我们只有0~9这十个数字,所以我 ...

  6. the c programming language 2-3

    #include<stdio.h> #define MAXLINELEN 1000 int power(int base,int n) { ; ; ;i<n;i++) answer= ...

  7. 扩展《C程序设计语言》练习2-3程序通用性

    最近开始自学C语言,在看K&R的<C程序设计语言>.练习2-3要求写一个函数,将输入的十六进制数字字符串转换成与之等价的整数值,配套答案没有扩展程序的通用性,所以我就稍微改造改造. ...

  8. Android中通过进程注入技术改动广播接收器的优先级

    前言 这个周末又没有吊事,在家研究了怎样通过进程的注入技术改动广播接收器的优先级.关于这个应用场景是非常多的.并且也非常重要.所以就非常急的去fixed了. Android中的四大组件中有一个广播:B ...

  9. C程序设计语言(第二版)习题:第二章

    这一章习题做着很舒服,毕竟很简单.所以很有感觉. 练习 2-1 Write a program to determine the ranges of char , short , int , and ...

随机推荐

  1. 使用eclipse从github导入maven项目

    github给的地址是类似https://github.com/xxx/se.git格式; 如何将其用eclipse导入呐? 第一步, Import Projects from Git 导入成功后 第 ...

  2. 下载google code中源码的几个工具

    Google code 一般以三种命令行方式提供源代码,格式如下: hg clone https://code.google.com/p/xxx/ git clone https://code.goo ...

  3. vim nginx配置文件时具备语法高亮功能

    1.下载nginx.vim 下载页面:http://www.vim.org/scripts/script.php?script_id=1886 wget http://www.vim.org/scri ...

  4. Virtualbox [The headers for the current running kernel were not found] (操作过程后还是失败,显示相同问题)

    在笔记本安装Ubuntu11.04增强功能失败 引用 fuliang@fuliang-VirtualBox:~$ sudo /etc/init.d/vboxadd setup Removing exi ...

  5. Imageen 图像切割 (JpegLosslessTrans)

    procedure CutAFile(FileName: string; qry: TQuery);var  i: Cardinal;  FromStream, ToStream: TMemorySt ...

  6. js正则表达使用实例

    (1)替换掉htmlStr中所有的<font..>和</font> var htmlstr='<font color="#fff">ABC< ...

  7. 扩展C#与元编程(二)

    如果你对Windows Workflow Foundation(WF)一无所知,当看到扩展C#与元编程(一)中由MW编译器生成的FirstLook.mw.cs时,也许这么在想:我KAO,这是C#版的汇 ...

  8. 输入N组父子对,求父子对所组成的二叉树的高度----17年某公司的笔试题

    题目的大致意思如下: 输入N组数,一组数代表一个父子对(如,0 1,0代表父节点,1代表子节点),求这N组数所组成的二叉树的高度: 例如: 输入:6  0 1  0 2  1 3  1 4  2 5 ...

  9. oracle系统视图字段说明

    oracle系统表v$session.v$sql表的列字段说明‍ 在本视图中,每一个连接到数据库实例中的 session都拥有一条记录.包括用户 session及后台进程如 DBWR, LGWR, a ...

  10. DOS中符号的英文对照

    --------------siwuxie095 1..:point 或 dot 或 period 或 full stop 2.空格:space 或 blank ------------------- ...