转载请标明出处:http://www.cnblogs.com/NongSi-Net/p/6805844.html

今天主要总结下:完成编程:

1、除printf函数之外,不用任何c语言库函数,实现将字符串转化为整数的函数myatoi(可以支持负整数的转化)。

2、除printf函数之外,不用任何c语言库函数,实现将整数转化为字符串的函数myitoa(可以支持负整数的转化)。

如果想理解这个问题,必须知道一个知识:

字符‘0’+一个整数,则得到这个整数的字符型。反之,字符型-字符‘0’则得到整数值。

如:‘0’+9=‘9’;

‘9’-‘0’=9;

代码如下:

/*
============================================================================
Name : mystoi.c
Author :
Version :
Copyright : Your copyright notice
Description : Hello World in C, Ansi-style
============================================================================
*/ #include <stdio.h> void mylength(int a,int *lenth)
{
int i = ;
if(lenth == NULL)
{
printf("mylength fun error\n");
}
do
{
a = a / ;
i++;
}while(a);
*lenth = i;
} void reserve(int lenth,char buf[])
{
int i = ;
char temp;
for(i = ;i<lenth/;i++)
{
temp = buf[i];
buf[i] = buf[lenth-i-];
buf[lenth-i-] = temp;
}
}
//1.除printf函数之外,不用任何c语言库函数,实现将整数转化为字符串的函数myitoa(可以支持负整数的转化)。
void myitoa(int a,char buf[])
{
int i = ;
int sign;
int length = ;
mylength(a,&length);
if((sign = a) < )
a = -a;
for(i = ;i<length;i++)
{
buf[i] = '' + a % ;
a = a / ;
}
if(sign < )
{
buf[i++] = '-';
reserve(length+,buf);
}else
{
reserve(length,buf);
}
} void slength(char buf[],int *length)
{
int i = ;
while(buf[i])
{
i++;
};
*length = i;
}
//2、除printf函数之外,不用任何c语言库函数,
//实现将字符串转化为整数的函数myatoi(可以支持负整数的转化)。
int myatoi(char buf[])
{
int sum = ;
int i = ;
int flag = ;
while(buf[i])
{
if(buf[i] == ' ')
i++;
else if(buf[i] == '+')
{
i++;
flag = ;
}
else if(buf[i] == '-')
{
i++;
flag = -;
}
else if(buf[i]>=''&&buf[i]<='')
{
sum = sum*+(buf[i] - '');
i++;
}
else
return ;
}
sum = sum * flag;
return sum;
} int main(void) {
int abc = ;
char arr[] = "--+1836";
int length = ;
char buf[] = {};
printf("the following thing is myitoa...Int---->string\n\n");
myitoa(abc,buf);
printf("the string is %s.\n\n",buf);
printf("the following thing is myatoi...string---->Int\n\n");
slength(arr,&length);
printf("the string's length is %d.\n\n",length);
printf("the Intger is %d.\n\n",myatoi(arr));
return ;
}

不使用c的任何库函数 实现字符串到整数的转换 整数到字符串的转换的更多相关文章

  1. C语言风格字符串的概念、定义、输入字符串、输出字符串

    字符串: C语言中最有用.最重要的数据类型之一. 字符串:是以\0字符结尾的char类型数组.所以可以把数组和指针知识应用于字符串. 如何在程序定义字符串: 1.字符串字面量 用双引号括起来的内容称为 ...

  2. ORACLE常用数值函数、转换函数、字符串函数

    本文更多将会介绍三思在日常中经常会用到的,或者虽然很少用到,但是感觉挺有意思的一些函数.分二类介绍,分别是: 著名函数篇 -经常用到的函数 非著名函数篇-即虽然很少用到,但某些情况下却很实用 注:N表 ...

  3. C#中对象,字符串,dataTable、DataReader、DataSet,对象集合转换成Json字符串方法。

    C#中对象,字符串,dataTable.DataReader.DataSet,对象集合转换成Json字符串方法. public class ConvertJson { #region 私有方法 /// ...

  4. DataTable转换成json字符串

    将DataTable里面的行转换成json字符串方法: #region DataTable转为json /// <summary> /// DataTable转为json /// < ...

  5. Newtonsoft.Json 把对象转换成json字符串

    var resultJson = new { records = rowCount, page = pageindex, //总页数=(总页数+页大小-1)/页大小 total = (rowCount ...

  6. 字串符相关 split() 字串符分隔 substring() 提取字符串 substr()提取指定数目的字符 parseInt() 函数可解析一个字符串,并返回一个整数。

    split() 方法将字符串分割为字符串数组,并返回此数组. stringObject.split(separator,limit) 我们将按照不同的方式来分割字符串: 使用指定符号分割字符串,代码如 ...

  7. C# 字符串string类型转换成DateTime类型 或者 string转换成DateTime?(字符串转换成可空日期类型)

    在c#中,string类型转换成DateTime类型是经常用到的,作为基本的知识,这里在此做个小结.一般来说可以使用多种方法进行转换,最常用的就是使用Convert.ToDateTime(string ...

  8. Java将其他数据格式转换成json字符串格式

    package com.wangbo.util; import java.beans.IntrospectionException; import java.beans.Introspector; i ...

  9. json 字符串转换成对象,对象转换成json字符串

    json   字符串转换成对象,对象转换成json字符串 前端: 方法一: parseJSON方法:   [注意jquery版本问题] var str = '{"name":&qu ...

  10. PDF转换成二进制字符串写入 HTTP 输出流

    最近项目需要做电子签章,需要网页打开PDF签章后保存:正好复习哈二进制和流的转换: 文件转换成二进制字符串写入HTTP输出流 protected void Page_Load(object sende ...

随机推荐

  1. java求两个集合的交集和并集,比较器

    求连个集合的交集: import java.util.ArrayList; import java.util.List; public class TestCollection { public st ...

  2. Android studio 开发一个用户登录界面

    Android studio 开发一个用户登录界面 activity_main.xml <?xml version="1.0" encoding="utf-8&qu ...

  3. css去掉div的滚动条

    懒得讲原理了,直接贴代码: css部分: .slide-box { margin-top: 200px; display: -webkit-box; overflow-x: scroll; overf ...

  4. console.log格式化及console对象

    一.console.log格式化打印 console.log格式化这一用法一般都在个人博客或其他官网上有,当F12查看网页元素时,在控制台(console)那里偶尔会发现一些个性化的输出,感觉很奇特很 ...

  5. 我的第一个随笔——MarkDown的简单用法!

    目录 我的第一个笔记 1. 学习简单的markdown语法 1.1 标题 1.2 引用 1.3 倾斜与加粗 1.4无序列表 1.5有序列表 1.6图片和网页 1.7分割线 1.8代码块 1.9结尾 2 ...

  6. 如何在 CentOS 7 上安装 Nginx

    本文首发:开发指南:如何在 CentOS 7 上安装 Nginx Nginx 读作 engine x, 是一个免费的.开源的.高性能的 HTTP 和反向代理服务,主要负责负载一些访问量比较大的站点. ...

  7. git 连接github.com 并配置密钥

    传送门:http://www.jianshu.com/p/ff1034ed270e #备份ssh cd ~/.ssh $ ls $ mkdir key_backup //创建备份文件夹 $ cp id ...

  8. Tornado进阶

    三.Tornado进阶 3.1 Application settings debug,设置tornado是否工作在调试模式,默认为False即工作在生产模式.当设置debug=True 后,torna ...

  9. 51nod1128 正整数分组V2

    [题解] 二分一个最大值,check一下分出来的组数是否小于等于k即可. #include<cstdio> #include<algorithm> #define LL lon ...

  10. Git——跟踪或取消跟踪文件

    在Git是用过程中,可能遇到以下情况: 1.被跟踪文件里面有不想跟踪的文件. 2.每次用git status查看状态时总是列出未被跟踪的文件. 解决方法: 1.当被跟踪的文件里面有不想跟踪的文件时,使 ...