【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 = 0;for(i = 0; s[i] >= '0' && s[i] <='9'; ++i){n = 10 * n + (s[i] - '0');}return n; }void main(){char charArr[] = "4562";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 = 0;k = strlen(charArr)-1;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 = 0;//判断是否为负数if((sign = n) < 0){n = - n;}//循环while(n > 0){tmpN = n % 10;n = n / 10;charArr[i++] = tmpN + '0';}if(sign < 0){charArr[i++] = '-';}charArr[i] = '\0';reverse(charArr); }void main(){int n = -456;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 = 0;k = strlen(charArr)-1;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 = 0;sign = n;//循环do{charArr[i++] = abs(n % 10) + '0';}while (n /= 10);if(sign < 0){charArr[i++] = '-';}charArr[i] = '\0';//字符串逆转 reverse(charArr); }void main(){int n = INT_MIN;char charArr[MAX];itoa(n, charArr);printf("%s\n", charArr); }
转载于:https://www.cnblogs.com/ningvsban/p/3803028.html
【C语言】字符串与整型数值之间的转换相关推荐
- 字符串,枚举,数值之间的转换
public enum eErrorDetailCode : int { 登陆成功 = 0, 登出 = 1, 应用错误 = 2, ...
- C语言实现字符串转整型
C语言实现字符串转整型 要求 了解 基本思想 代码 求10的n次方函数 字符串s转换为整型函数 所有代码 不足 要求 1.输入中只包含正负号和数字. 2.正负号只只出现在首位. 了解 (1)负号Asc ...
- 1.2 String字符串和整型int的相互转换,valueOf() 、parse()和toString()
String 在编程中被广泛使用,所以掌握 String 和 int 的相互转换方法是极其重要的.前面部分主要讲解了 String 转换 int 和 int 转换 String 方法,后面部分对 va ...
- Java String字符串和整型int的相互转换
String 在编程中被广泛使用,所以掌握 String 和 int 的相互转换方法是极其重要的. String转换为int String 字符串转整型 int 有以下两种方式: Integer.pa ...
- Java教程:Java String字符串和整型int的相互转换
Java教程String 在编程中被广泛使用,所以掌握 String 和 int 的相互转换方法是极其重要的.本节前面部分主要讲解了 String 转换 int 和 int 转换 String 方法, ...
- c语言数据类型int的用法,C语言基本数据类型:整型(int)用法详解|C语言学习
C语言基本数据类型:整型(int)用法详解 1. 整型 int C 语言提供了很多整数类型(整型),这些整型的区别在于它们的取值范围的大小,以及是否可以为负.int 是整型之一,一般被称为整型.以后, ...
- C++ 整型转16进制字符串或16进制字符串转整型
前言:整数转16进制字符串,网上大部分的资料都是要传入16进制字符串的位数,有点麻烦.本文介绍的方法自动确定返回的字符串的位数,位数为最小偶数.偶数位方便使用时转成字节数组(unsigned char ...
- C语言输出长长整型错误,c语言长整型定义
我用long int怎么不行呢 基本定义形式为: long var_name = INIT_VALUE; 一. 长整型在C语言中类型关键字为long. 定义时,var_name为变量名. INIT_V ...
- Java 和 .NET 获得毫秒级长整型数值的差异和解决
2019独角兽企业重金招聘Python工程师标准>>> 维护的某系统中有个用 Java 写的生成唯一标识的类,主要是靠"Calendar.getInstance().get ...
- sscanf操作字符串和整型的区别
今天测试了一下,发现sscanf操作字符串和整型在格式上是有区别的,下面来看看.下面2个例子都是要取字符串对应的12347那段数字. 先看操作字符串的: int main() {char buf[10 ...
最新文章
- 一种注册表沙箱的思路、实现——注册表的一些基础知识
- 流行于机器学习竞赛的Boosting,这篇文章讲的非常全了
- 机器学习:线性回归简单有效,但是千万不要踩到雷区!
- PyTorch开源物体检测工具包
- 使用OpenSSL加密,使用Java解密,使​​用OpenSSL RSA公钥
- day 68 增删改查 语法
- Error: Java heap space
- jQ判断一个元素是否为空
- [转]JSP中常见的Tomcat报错错误解析(一)
- java的程序控制关键字_Java编程的关键字有哪些
- mysql防注入方法_防止SQL注入的六种方法
- 解决gitlab内置node_exporter提供外部prometheus使用
- Codeforces - Mike and Feet
- BZOJ3772精神污染
- 通过授权微信,达到软件登录账号的效果~~未完
- flvplayer.swf flv视频播放器使用方法
- 有道云APP(生成文档目录)
- SecureCRT for Linux
- HDU 5514 Frogs 容斥
- 【git】原理与.git文件夹解读