【C语言】字符串与整型数值之间的转换
一.将字符串转化为对应的数值
/*=============================================================================
#
# FileName: stringToNo.c
# Algorithm: 将字符串转化为对应的整型数值
# Author: Knife
# Created: 2014-06-22 20:37:36
#
=============================================================================*/
#include<stdio.h>
#include<string.h>
int atoi(char* s){
int i, n;
n = ;
for(i = ; s[i] >= '' && s[i] <=''; ++i){
n = * n + (s[i] - '');
}
return n;
} void main(){
char charArr[] = "";
int number = atoi(charArr);
printf("%d\n",number);
}
二.将数值转化成字符串
/*=============================================================================
#
# FileName: noToString.c
# Algorithm: 将整型数值转化成字符串
# Author: Knife
# Created: 2014-06-22 20:37:36
#
=============================================================================*/
#include<stdio.h>
#include<string.h>
#define MAX 100 //字符串逆转
void reverse(char* charArr){
int j, k, tmp;
j = ;
k = strlen(charArr)-;
for(; j < k; j++, k--){
tmp = charArr[j];
charArr[j] = charArr[k];
charArr[k] = tmp;
}
} void itoa(int n, char* charArr){
int tmpN, i, sign;
i = ;
//判断是否为负数
if((sign = n) < ){
n = - n;
}
//循环
while(n > ){
tmpN = n % ;
n = n / ;
charArr[i++] = tmpN + '';
}
if(sign < ){
charArr[i++] = '-';
}
charArr[i] = '\0';
reverse(charArr);
} void main(){
int n = -;
char charArr[MAX];
itoa(n, charArr);
printf("%s\n", charArr);
}
三.问题扩展
在数的对二的补码表示中,我们编写的itoa函数不能处理最大的负数,即n等于-2^(字长-1)的情况,因为我们在(二)中的代码中判断如果n为负数,令n=-n,所以导致了溢出。修改该函数,使它在任何机器上运行时都能打印出正确的值。修改后的代码如下:
/*=============================================================================
#
# FileName: noToString2.c
# Algorithm: 将整型数值转化成字符串(扩展版)
# Author: Knife
# Created: 2014-06-22 20:48:36
#
=============================================================================*/
#include<stdio.h>
#include<string.h>
#include <stdlib.h>
#define MAX 100 //字符串逆转
void reverse(char* charArr){
int j,k,tmp; j = ;
k = strlen(charArr)-;
for(; j < k; j++, k--){
tmp = charArr[j];
charArr[j] = charArr[k];
charArr[k] = tmp;
}
} void itoa(int n, char* charArr){
int tmpN, i, sign;
i = ;
sign = n;
//循环
do{
charArr[i++] = abs(n % ) + '';
}while (n /= );
if(sign < ){
charArr[i++] = '-';
}
charArr[i] = '\0';
//字符串逆转
reverse(charArr);
} void main(){
int n = INT_MIN;
char charArr[MAX];
itoa(n, charArr);
printf("%s\n", charArr);
}
【C语言】字符串与整型数值之间的转换的更多相关文章
- 将int,bigint整型数值可逆转换字符串
将 Int 和 BigInt 类型数值转换为字符串的可逆方法,可用于缩短网址或记录的ID转换等. 如: 9223372036854775807 => aZl8N0y58M7 class Conv ...
- Docs-.NET-C#-指南-语言参考-关键字-内置类型-值类型:整型数值类型
ylbtech-Docs-.NET-C#-指南-语言参考-关键字-内置类型-值类型:整型数值类型 1.返回顶部 1. 整型数值类型(C# 参考) 2019/10/22 “整型数值类型”是“简单类型”的 ...
- python字符串跟整型互转
print ("整型:",int(50))a=int(50)print("整型:",a)numStr = "50";print (" ...
- java程序中默认整形值常量是什么类型的?如何区分不同类型的整型数值常量?
java程序中默认整形值常量是什么类型的?如何区分不同类型的整型数值常量? 整数值默认就是int类型,只有在数值常量后面加“L”或“l”才表明该常量是long型
- Python字符串,整型,浮点数相互转化
Python字符串,整型,浮点数相互转化 觉得有用的话,欢迎一起讨论相互学习~Follow Me int(str) 函数将符合整数的规范的字符串转换成int型 float(str) 函数将符合浮点数的 ...
- sqlite 字符串 转 整型 cast 函数 (强制类型转换 )
sqlite 字符串 转 整型使用 cast 函数 语法: cast(col_name as type) 例子: 表:JobInfo 表内字段:Salary 薪水 select * from Job ...
- Java:集合,对列表(List)中的数据(整型、字符串、日期等)进行排序(正序、倒序)的方法;字符串按照整型排序的方法
1. 要求 对List列表中的数据进行排序(正序.倒序),列表中的数据包括:整型(Integer).字符串(String).日期(Date)等.对于字符串,要求允许对它按照整型进行排序. 2. 实现思 ...
- java 字符串与整型相互转换
如何将字串 String 转换成整数 int? A. 有两个方法: 1). int i = Integer. parseInt ([String]); 或 i = Integer.parseInt ( ...
- 剑指offer-第七章面试案例1(字符串转换为整型)
//将字符串转换为整型 //思路:特殊的输入测试: //1,考虑字符串是否为空.2.字符串问空的时候的返回0,和真实的返回0直键的区别.3,字符串中出现0~9的字符处理 //4.字符串中出现*,¥等一 ...
随机推荐
- sonarqube 5.6
转载:https://www.jianshu.com/p/402987500bfd 一. 简介 Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量.通过插件形式,可以支持包括java,C ...
- 一起talk C栗子吧(第一百三十三回:C语言实例--创建进程时的内存细节)
各位看官们.大家好,上一回中咱们说的是从内存角度看进程和线程的样例.这一回咱们说的样例是:创建进程时的内存细节.闲话休提,言归正转.让我们一起talk C栗子吧! 看官们.我们都知道使用fork函数能 ...
- DevExpress去除多国语言包
DevExpress作为windows开发中较为强大的第三方组件,能极大的提高编程效率和界面效果.但也要引用它较多的dll文件,它专门有个查看dll程序集依赖的工具,在VS的工具菜单下: 在VS的工具 ...
- vcenter建立cluster
参见: VMware vSphere 5.1 学习系列之六:vCenter Server 主机管理(2) http://bbs.watchstor.com/thread-166222-1-2.html ...
- ldd 以及 ld-linux.so.2
最近跟编译工具干上了,可能是问题积累集中爆发的结果. 今天对 ld-linux.so.x 有很大兴趣,想对它多些了解,遂百度之.发现了指令 ldd. 关于 ldd 其实 ldd 是一个脚本,并不是一个 ...
- flow 静态类型检查 js
1.flow介绍 https://ustbhuangyi.github.io/vue-analysis/prepare/flow.html#为什么用-flow 2.使用 (1)安装flow (2)项目 ...
- 索引快速扫描(index fast full scan)
一.索引快速扫描(index fast full scan) 索引快速全扫描(INDEX FAST FULL SCAN)和索引全扫描(INDEX FULL SCAN)极为类似,它也适用于所有类型的B ...
- Knockout学习之监控数组
监控数组 单个监控属性.组合属性虽然可以解决大部分的问题,但是还有很多是他们无法做到的,比如在一组数据中进行移除添加,所以这节我们将要学习监控数组. 由于监控属性是由ko的observable构造,那 ...
- Django之 创建第一个站点
详细请查看麦子学院django第二小节 一.新建website 工程: 在python34目录下创建一个空文件,名字为“djangoweb” 1.环境变量设置2.打开cmd命令符界面C:\Users\ ...
- centos6.5官方dvd做本地yum
问题描述: 一切都搞定了,就是yum makecache 出现文件404,再目录看了也不对没后缀...(这不扯淡吗,rhel的dvd是可以直接使用的,难道企业版与社区版的区别??) 日志记录 [roo ...