C语言实现字符串转整型
C语言实现字符串转整型
- 要求
- 了解
- 基本思想
- 代码
- 求10的n次方函数
- 字符串s转换为整型函数
- 所有代码
- 不足
要求
1、输入中只包含正负号和数字。
2、正负号只只出现在首位。
了解
(1)负号Ascii码为45,正号Ascii码为43。
(2)char型字符与整型转换需要剪48。如将 char a=‘6’,转换位int型,则为 int b=a-48
演示。
(3)如果第一位是符号,则用flag记录 ,最后进行相应的变化。
#include<stdio.h>
int main(){char a='6';int b=a-48;printf("%d",b);return 0;
}
输出结果
基本思想
1、首先遍历字符串s,将其中的每个字符转换成数字,并存储在一个整型数组a中,并记录a的尾部下标。
2、遍历整型数组a,并将每一项乘以相应的数量级并相加。
如何相乘以对应的数量级,由于从i=0开始遍历整型数组a,所以每一项乘以10的top-i次方。
是有意图如下。
一边遍历一边求和。
代码
求10的n次方函数
//10的n次方
int g(int n){int t=1;int i;if(n==0){//10的0次方等于1return 1;} else{for(i=0;i<n;i++){t=t*10;}}return t;
}
字符串s转换为整型函数
int f(char* s){int a[100];int top=-1;int i;int flag=0;//如果第一位是符号,则用flag记录 int sum=0;//记录最后的返回值 for(i=0;s[i]!='\0';i++){//遍历字符串s if(s[i]=='-'||s[i]=='+'){//如果是符号则放入flag中 flag=s[0];}else{top++;a[top]=s[i]-48; //字符转整型减48 }}for(int i=0;i<=top;i++){//遍历整型数组a sum=sum+a[i]*g(top-i);//每一项乘以对应的数量级 }if(flag==45){//判断符号 return -1*sum;}else{return sum;}}
所有代码
#include<stdio.h>//10的n次方
int g(int n){int t=1;int i;if(n==0){return 1;} else{for(i=0;i<n;i++){t=t*10;}}return t;
}int f(char* s){int a[100];int top=-1;int i;int flag=0;//如果第一位是符号,则用flag记录 int sum=0;//记录最后的返回值 for(i=0;s[i]!='\0';i++){//遍历字符串s if(s[i]=='-'||s[i]=='+'){//如果是符号则放入flag中 flag=s[0];}else{top++;a[top]=s[i]-48; //字符转整型减48 }}for(int i=0;i<=top;i++){//遍历整型数组a sum=sum+a[i]*g(top-i);//每一项乘以对应的数量级 }if(flag==45){//判断符号 return -1*sum;}else{return sum;}} int main(){char s[100];scanf("%s",s);int a=f(s);printf("%d",a);
}
不足
如果字符串所表示的整型数组超出int所能存储的范围则会发生溢出现象。
C语言实现字符串转整型相关推荐
- sscanf操作字符串和整型的区别
今天测试了一下,发现sscanf操作字符串和整型在格式上是有区别的,下面来看看.下面2个例子都是要取字符串对应的12347那段数字. 先看操作字符串的: int main() {char buf[10 ...
- 1.2 String字符串和整型int的相互转换,valueOf() 、parse()和toString()
String 在编程中被广泛使用,所以掌握 String 和 int 的相互转换方法是极其重要的.前面部分主要讲解了 String 转换 int 和 int 转换 String 方法,后面部分对 va ...
- sqlite 字符串 转 整型 cast 函数 (强制类型转换 )
sqlite 字符串 转 整型使用 cast 函数 语法: cast(col_name as type) 例子: 表:JobInfo 表内字段:Salary 薪水 select * from Job ...
- 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.TryParse方法将字符串转换为整型Int类型
在C#编程过程中,将字符串string转换为整型int过程中,时常使用的转换方法为int.Parse方法,但int.Parse在无法转换的时候,会抛出程序异常,其实还有个int.TryParse方法可 ...
- C语言(二)— 整型
编程进阶- C语言(二)- 整型 整型 在C语言中,整型数据一般用short.int.long三种数据类型来声明,int是C语言中常用的声明整形数据的数据类型,在现代的操作系统中,一般是占4字节(By ...
- C++ 整型转16进制字符串或16进制字符串转整型
前言:整数转16进制字符串,网上大部分的资料都是要传入16进制字符串的位数,有点麻烦.本文介绍的方法自动确定返回的字符串的位数,位数为最小偶数.偶数位方便使用时转成字节数组(unsigned char ...
- vc2015/2010整型转字符串-字符串转整型 vc++
CString str; str.Format(_T("%d"),number1);//整型转字符串 AfxMessageBox(d); CString str="222 ...
最新文章
- 关于介绍编程前景的html文档,HTML编程基础稿件(32页)-原创力文档
- HTML5/CSS3实现图片倒影效果
- 使用grep实现精确过滤的五种方法
- 远程工作时的协作工具
- 禅道备份功能_更新禅道燃尽图及数据备份
- 苹果iPad Pro将转向OLED屏幕 首款明年下半年推出
- 杂项:HTML5-3/3-技术要点
- linux下msmtp+mutt+shell发送邮件
- /etc/rc.local开启自启不执行问题
- Android中CheckBox与CompoundButton源码解析
- unity自动生成敌人_Unity3D 敌人AI 和 动画( Animator )系统的实例讲解
- hp linux 禁用u盘启动不了,笔记本被禁用U盘启动功能的bios设置解除方法
- 0008:《以色列:一个国家的诞生》读后感
- pytorch criterion踩坑小结
- 基于CentOS7操作cobbler批量装机-(centos7和redhat8)
- 02中国华南华东华北华中华西等位置画出来
- Android 开机画面和wallpaper总结
- 洛谷入门1【顺序结构】题单题解
- win10 nas搭建_树莓派之实现简单的家庭NAS
- 阿里巴巴国际站是什么