在笔试面试中经常会遇到让你实现C语言中的一些函数比如strcpy,atoi等

1. atoi

把字符串s转换成数字

 int Atoi( char *s )
{
int num = , i = ;
int sign = ; for( i=; isspace(s[i]); i++ ); sign = (s[i] == '-')? -:; if( s[i] == '+' || s[i] == '-' )
i++; for( ;isdigit(s[i]); i++ )
{
num = *num + (s[i]-'');
} return sign*num;
}

2. strcpy(char *src, char *dst)

把src复制到dst中

 int Strcpy(char* src, char *dst)
{
// register char *tmp;
int i = ;
while( src[i]!= NULL )
{
dst[i] = src[i++];
}
}

3.itoa( int n, char *s )

把数字转化成字符串

 void Reverse( char *s )
{
int size = ;
char tmp; while( s[size] != NULL )
size++;
size--; int i=;
while( i <= size>> )
{
tmp = s[i], s[i] = s[size-i], s[size-i] = tmp;
i++;
}
} void ItoA( int n, char *s )
{
int sign = ; if( n < )
{
sign = -;
n = -n;
} int i=;
do
{
s[i++] = n% + '';
} while((n/=) > ); if( sign == - )
s[i++] = '-';
s[i] = '\0';
Reverse( s );
}

4. atof( char * s )

把字符串转化成double类型

 double AtoF( char *s )
{
int sign = ;
int i = ;
for( i=; isspace(s[i]); i++ ); sign = (s[i] == '-')? -:; if( s[i] == '+' || s[i] == '-' )
i++; double num = 0.0;
double pow = 1.0;
//整数
for( ;isdigit(s[i]); i++ )
num = num* + (s[i]-''); for( i++; isdigit(s[i]); i++ )
{
num = num* + (s[i]-'');
pow *= ;
} return sign * (num/pow);
}

转自http://blog.csdn.net/matrix_laboratory/article/details/12028431

[转载]C函数的实现(strcpy,atoi,atof,itoa,reverse)的更多相关文章

  1. C函数的实现(strcpy,atoi,atof,itoa,reverse)

    在笔试面试中经常会遇到让你实现C语言中的一些函数比如strcpy,atoi等 1. atoi 把字符串s转换成数字 int Atoi( char *s ) { int num = 0, i = 0; ...

  2. atoi、itoa,strcpy,strcmp,memcpy等实现

    原文:http://www.cnblogs.com/lpshou/archive/2012/06/05/2536799.html 1.memcpy.memmove.memset源码 link:http ...

  3. _itoa _itow _itot atoi atof atol

    函数原型: char *_itoa( int value, char *string, int radix ); //ANSI wchar_t * _itow( int value, wchar_t ...

  4. c++实现atoi()和itoa()函数(字符串和整数转化)

    (0) c++类型所占的字节和表示范围 c 语言里 类型转换那些事儿(补码 反码) 应届生面试准备之道 最值得学习阅读的10个C语言开源项目代码 一:起因 (1)字符串类型转化为整数型(Integer ...

  5. 面试:atoi() 与 itoa()函数的内部实现(转)

    原 面试:atoi() 与 itoa()函数的内部实现 2013年04月19日 12:05:56 王世晖 阅读数:918   #include <stdio.h> #include < ...

  6. 实现字符串函数,strlen(),strcpy(),strcmp(),strcat()

    实现字符串函数,strlen(),strcpy(),strcmp(),strcat() #include<stdio.h> #include<stdlib.h> int my_ ...

  7. atoi()和itoa()函数详解以及C语言实现

    atoi()函数 atoi()原型:  int atoi(const char *str ); 函数功能:把字符串转换成整型数. 参数str:要进行转换的字符串 返回值:每个函数返回 int 值,此值 ...

  8. c常用函数-atoi 和 itoa

    atoi 和 itoa atoi的功能是把一个字符串转为整数 Action(){ int j; char *s=""; j = atoi(s); lr_output_message ...

  9. atoi 和 itoa的实现

    atoi 和 itoa是面试笔试经常要考到的题目,下面两份代码是用C语言实现的atoi和itoa: 1, atoi 原型: int atoi(const char *nptr); 函数说明: 参数np ...

随机推荐

  1. 【LeetCode】Reorder Log Files(重新排列日志文件)

    这道题是LeetCode里的第937道题. 题目描述: 你有一个日志数组 logs.每条日志都是以空格分隔的字串. 对于每条日志,其第一个字为字母数字标识符.然后,要么: 标识符后面的每个字将仅由小写 ...

  2. Linux下dpkg的用法

    转自:http://blog.csdn.net/fireblue1990/article/details/52627952 dpkg是一个Debian的一个命令行工具,它可以用来安装.删除.构建和管理 ...

  3. [LA3620]Manhattan Wiring

    [LA3620]Manhattan Wiring 试题描述 输入 输出 输入示例 输出示例 数据规模及约定 见“输入” 题解 我们把“连线”的过程改为“铺地砖”的过程,总共有 11 种地砖,每种地砖上 ...

  4. Codeforces 333E Summer Earnings ——Bitset

    [题目分析] 找一个边长最大的三元环. 把边排序,然后依次加入.加入(i,j)时,把i和j取一个交集,看看是否存在,存在就找到了最大的三元环. 输出即可,n^3/64水过. [代码] #include ...

  5. 【边双连通】poj 3352 Road Construction

    http://poj.org/problem?id=3352 [题意] 给定一个连通的无向图,求最少加多少条边使得这个图变成边双连通图 [AC] //#include<bits/stdc++.h ...

  6. polya burnside 专题

    polya题目:uva 11077 Find the Permutationsuva 10294 Arif in DhakaLA 3641 Leonardo's Notebookuva 11077 F ...

  7. 能量项链(codevs 1154)

    题目描述 Description 在Mars星球上,每个Mars人都随身佩带着一串能量项链.在项链上有N颗能量珠.能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数.并且,对于相邻的两颗珠子 ...

  8. 标准C程序设计七---23

    Linux应用             编程深入            语言编程 标准C程序设计七---经典C11程序设计    以下内容为阅读:    <标准C程序设计>(第7版) 作者 ...

  9. Laravel 之Artisan

    简介: Artisan是Laravel中自带的命令行工具的名称: 由强大的Symfony Console组件驱动的: 提供了一些对应用开发有帮助的命令: 查看所有可用的Artisan的命令 php a ...

  10. Hdu5921 Binary Indexed Tree

    Hdu5921 Binary Indexed Tree 思路 计数问题,题目重点在于二进制下1的次数的统计,很多题解用了数位DP来辅助计算,定义g(i)表示i的二进制中1的个数, $ans = \su ...