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语言实现字符串转整型相关推荐

  1. sscanf操作字符串和整型的区别

    今天测试了一下,发现sscanf操作字符串和整型在格式上是有区别的,下面来看看.下面2个例子都是要取字符串对应的12347那段数字. 先看操作字符串的: int main() {char buf[10 ...

  2. 1.2 String字符串和整型int的相互转换,valueOf() 、parse()和toString()

    String 在编程中被广泛使用,所以掌握 String 和 int 的相互转换方法是极其重要的.前面部分主要讲解了 String 转换 int 和 int 转换 String 方法,后面部分对 va ...

  3. sqlite 字符串 转 整型 cast 函数 (强制类型转换 )

    sqlite 字符串 转 整型使用 cast 函数 语法: cast(col_name as type) 例子: 表:JobInfo 表内字段:Salary  薪水 select * from Job ...

  4. Java String字符串和整型int的相互转换

    String 在编程中被广泛使用,所以掌握 String 和 int 的相互转换方法是极其重要的. String转换为int String 字符串转整型 int 有以下两种方式: Integer.pa ...

  5. Java教程:Java String字符串和整型int的相互转换

    Java教程String 在编程中被广泛使用,所以掌握 String 和 int 的相互转换方法是极其重要的.本节前面部分主要讲解了 String 转换 int 和 int 转换 String 方法, ...

  6. 【转载】 C#中使用int.TryParse方法将字符串转换为整型Int类型

    在C#编程过程中,将字符串string转换为整型int过程中,时常使用的转换方法为int.Parse方法,但int.Parse在无法转换的时候,会抛出程序异常,其实还有个int.TryParse方法可 ...

  7. C语言(二)— 整型

    编程进阶- C语言(二)- 整型 整型 在C语言中,整型数据一般用short.int.long三种数据类型来声明,int是C语言中常用的声明整形数据的数据类型,在现代的操作系统中,一般是占4字节(By ...

  8. C++ 整型转16进制字符串或16进制字符串转整型

    前言:整数转16进制字符串,网上大部分的资料都是要传入16进制字符串的位数,有点麻烦.本文介绍的方法自动确定返回的字符串的位数,位数为最小偶数.偶数位方便使用时转成字节数组(unsigned char ...

  9. vc2015/2010整型转字符串-字符串转整型 vc++

    CString str; str.Format(_T("%d"),number1);//整型转字符串 AfxMessageBox(d); CString str="222 ...

最新文章

  1. 关于介绍编程前景的html文档,HTML编程基础稿件(32页)-原创力文档
  2. HTML5/CSS3实现图片倒影效果
  3. 使用grep实现精确过滤的五种方法
  4. 远程工作时的协作工具
  5. 禅道备份功能_更新禅道燃尽图及数据备份
  6. 苹果iPad Pro将转向OLED屏幕 首款明年下半年推出
  7. 杂项:HTML5-3/3-技术要点
  8. linux下msmtp+mutt+shell发送邮件
  9. /etc/rc.local开启自启不执行问题
  10. Android中CheckBox与CompoundButton源码解析
  11. unity自动生成敌人_Unity3D 敌人AI 和 动画( Animator )系统的实例讲解
  12. hp linux 禁用u盘启动不了,笔记本被禁用U盘启动功能的bios设置解除方法
  13. 0008:《以色列:一个国家的诞生》读后感
  14. pytorch criterion踩坑小结
  15. 基于CentOS7操作cobbler批量装机-(centos7和redhat8)
  16. 02中国华南华东华北华中华西等位置画出来
  17. Android 开机画面和wallpaper总结
  18. 洛谷入门1【顺序结构】题单题解
  19. win10 nas搭建_树莓派之实现简单的家庭NAS
  20. 阿里巴巴国际站是什么

热门文章

  1. linux哪个文件夹不能乱改,Linux的文件夹权限如何更改
  2. Spring-beans-FactoryBean
  3. C语言-目标文件/链接文件
  4. SQLite3中核心C API
  5. java 发送短信例子_利用java实现的一个发送手机短信的小例子
  6. git 代码回滚_谁说用 Git 一定要用命令行?试试 SourceTree 吧
  7. jQuery--基本选择器
  8. 【DRP】【SQL】-悲观锁-防止多用户同时操作时出现脏数据
  9. zoj 3703(背包)
  10. remobject 簡介