`
binbin8497
  • 浏览: 46441 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

简单的实现c函数的源代码

阅读更多


 C语言库函数名:

 atoi

  功 能: 把字符串转换成整型数.

  名字来源:array to integer 的缩写.

  函数说明: atoi()会扫描参数nptr字符串,如果第一个字符不是数字也不是正负号返回零,否则开始做类型转换,之后检测到非数字或结束符 \0 时停止转换,返回整型数。

  原型: int atoi(const char *nptr);

  需要用到的头文件: #include <stdlib.h>
简单的实现atoi函数的源代码:

int my_atoi(const char *str){
  int result;
  int signal = 1; /* 默认为正数 */
  if((*str>='0'&&*str<='9')||*str=='-'||*str=='+'){
  	if(*str=='-'||*str=='+'){
  		if(*str=='-')
  			signal = -1; /* 输入负数 */
  		str++;
  	} 
  }
  else return 0;
  /* 开始转换 */
  while(*str>='0'&&*str<='9')
 	 result = result*10+(*str++ -'0');
  return signal*result;
}

 

strcpy

  原型:extern char *strcpy(char *dest,char *src);
  用法:#include <string.h>
  功能:把src所指由NULL结束的字符串复制到dest所指的数组中。
  说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
  返回指向dest的指针。
  给一个很经典版本的strcpy函数源码:
char *strcpy(char *strDest, const char *strSrc){
  assert((strDest!=NULL) && (strSrc !=NULL)); 
  char *address = strDest; 
  while( (*strDest++ = * strSrc++) != ‘\0’ ) 
     ; 
  return address ; 
}
 

itoa

  功 能: 把一整数转换为字符串
  用 法: char *itoa(int value, char *string, int radix);
  头文件: <stdlib.h>
#include <stdlib.h>
  #include <stdio.h>
  int main()
  {
  	int number = 123456;
  	char string[25];
  	itoa(number, string, 10);
 	printf("integer = %d string = %s\n", number, string);
 	return 0; 
  }
  /* 实现itoa函数的源代码 */
  char *myitoa(int num,char *str,int radix)
  {
  	/* 索引表 */
  	char index[]="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  	unsigned unum; /* 中间变量 */
  	int i=0,j,k;

  	/* 确定unum的值 */
 	 if(radix==10&&num<0) /* 十进制负数 */
  	{
  		unum=(unsigned)-num;
  		str[i++]='-';
  	}



  	else unum=(unsigned)num; /* 其他情况 */
  	/* 逆序 */
  	do
  	{
  		str[i++]=index[unum%(unsigned)radix];
  		unum/=radix;
  	}while(unum);
 	 str[i]='\0';

 	 /* 转换 */
  	if(str[0]=='-') k=1; /* 十进制负数 */
  	else k=0;
 	 for(j=k;j<(i-1)/2+k;j++)
 	 {
 		 num=str[j];
 		 str[j]=str[i-j-1+k];
 		 str[i-j-1+k]=num;
 	 }
 	 return str;
  }
 
分享到:
评论

相关推荐

    c语言源代码(经典).zip_C语言的经典代码_经典C源代码

    在C语言中,源代码通常由一系列函数组成,每个函数执行特定的任务。例如,你可能会在这些源代码中找到排序算法(如冒泡排序、快速排序)、搜索算法(如线性搜索、二分搜索)、数据结构实现(如链表、树、栈、队列)...

    malloc函数源代码

    `malloc[1].c`这个文件名暗示了一个简单的`malloc`实现,但完整的`malloc`源代码通常包含数千行甚至上万行代码,因为它需要处理各种复杂情况和优化。在阅读`malloc`的源代码时,可以期待看到内存分配策略、数据结构...

    简易贪吃蛇C语言实现源代码

    【简易贪吃蛇C语言实现源代码】是一个典型的C语言编程项目,主要目的是通过控制台实现一个基础版的贪吃蛇游戏。这个项目的核心在于利用C语言的基本语法和逻辑结构来构建游戏机制,包括游戏循环、键盘输入处理、蛇的...

    经典小游戏_c语言_源代码_贪吃蛇

    在提供的压缩包文件“第3章 贪吃蛇”中,可能包含了详细的C语言源代码和相关说明,可以作为学习和参考的资源。通过对这些源代码的阅读和调试,你将能够更深入地理解贪吃蛇游戏的实现过程,同时也可以动手修改和优化...

    语法分析C语言实现源代码

    ### 语法分析C语言实现源代码解析 #### 核心知识点概述 在计算机科学领域,语法分析是编译原理中的一个重要组成部分,它负责将词法分析器产生的词元流转换成高级抽象数据结构,通常是一种抽象语法树(ASDT),以便...

    200个C语言小游戏源代码

    "200个C语言小游戏源代码"集合提供了丰富的实践项目,旨在帮助学习者通过实际操作来加深对C语言的理解。下面将详细探讨这些小游戏背后涉及的C语言知识点。 1. 基本语法:所有C语言程序都始于`#include`预处理指令,...

    C语言斗地主源代码

    《C语言实现斗地主游戏源代码解析》 在编程世界中,用C语言编写游戏是一种挑战,因为C语言本身并不支持高级的游戏开发库。然而,通过熟练掌握C语言的基本结构和逻辑,开发者可以实现一些简单的游戏,如斗地主。下面...

    DES源代码C语言实现

    在"DES源代码C语言实现"中,我们通常会看到以下几个关键部分: 1. **初始化**:首先,代码会包含必要的头文件,并定义各种常量和结构体,比如64位的数据块大小,以及56位的密钥。C语言中没有内置的大整数类型,所以...

    c语言万年历源代码

    综上所述,这段C语言万年历源代码展示了如何结合C语言的基础语法和一些高级技术来开发一个简单的图形界面应用程序。通过学习这段代码,可以深入了解C语言在实际项目中的应用方式,特别是如何利用标准库和自定义函数...

    C语言经典编程源代码打包下载,共900例.rar

    本压缩包“C语言经典编程源代码打包下载,共900例.rar”包含了900个C语言的源代码实例,是学习和提升C编程技能的宝贵资源。这些实例涵盖了C语言的基础知识到进阶应用,对于初学者和有经验的开发者都具有很高的参考...

    C语言通讯录源代码V

    本篇文章将解析一个C语言编写的通讯录管理系统的源代码,主要包含创建、插入、删除、搜索和修改记录等功能,旨在帮助初学者理解C语言的数据结构和函数操作。 首先,定义一个结构体`ID`来存储联系人的信息,包括姓名...

    Linux- 用C语言实现的简单Web服务器源代码

    总的来说,"Linux- 用C语言实现的简单Web服务器源代码"为学习者提供了一个宝贵的实践平台,帮助他们从零开始理解Web服务器的运作方式。通过分析和修改源代码,不仅可以提高C语言编程技能,还能增强对网络协议和...

    C语言实现推箱子源代码

    在提供的"推箱子"文件中,包含了实现这个游戏的源代码。分析和理解这些代码可以帮助我们学习C语言编程技巧,了解如何将抽象的逻辑规则转化为具体的程序指令,以及如何设计和实现游戏机制。对于初学者,这是一个很好...

    c语言计算器源代码

    本文将详细解析一个基于C语言实现的简单计算器源代码,该计算器能够处理基本的算术运算,包括加法、减法、乘法、除法以及阶乘。以下是对源代码各部分的详细解释: 1. **`needle` 函数**: `needle` 函数的作用是将...

    c语言家谱实现FamilyTree源代码.zip

    在这个项目中,"c语言家谱实现FamilyTree源代码.zip" 提供了一种实现方式,我们可以从中学习到如何用C语言来构建和操作这种数据结构。 1. **数据结构设计**: - 定义结构体:首先,我们需要定义一个结构体来存储...

    c语言电梯模拟源代码

    综上所述,这段C语言电梯模拟源代码不仅展示了如何使用图形库实现动态界面,还涵盖了数据结构管理、事件驱动编程、控制流逻辑等多个方面的知识,对于学习C语言和理解基础的软件工程原理具有一定的参考价值。

    C语言游戏源代码集合

    7. **图形库**:虽然C语言本身不包含图形库,但可以借助第三方库如TurboC 2.0的图形库来创建简单的图形界面,实现游戏中的图形绘制和用户交互。 8. **文件操作**:为了保存游戏进度或读取高分,了解如何在C语言中...

    俄罗斯方块游戏源代码 C语言实现

    《C语言实现的俄罗斯方块游戏源代码解析》 俄罗斯方块是一款经典的电子游戏,以其简单易懂的规则和无尽的游戏性深受玩家喜爱。在本文中,我们将深入探讨一个用C语言实现的俄罗斯方块游戏源代码,揭示其背后的编程...

    Matlab中unwrap函数C代码实现

    以下是一个简单的C代码实现示例: ```c #include #include void unwrap(double* phase, int n) { for (int i = 1; i ; ++i) { double diff = phase[i] - phase[i - 1]; while (diff &gt; M_PI) { phase[i] -= 2...

    log的c实现

    "log的c实现"这个主题关注的是如何在C语言环境中实现一个日志系统。C语言作为一种底层、高效的编程语言,虽然没有内置的日志功能,但可以通过自定义函数来实现。 在描述中提到的博客链接,虽然内容没有给出,但我们...

Global site tag (gtag.js) - Google Analytics