将字符串转换成对应的整数(简单版,后续会出复杂版的)

#include <stdio.h>
#include <assert.h>
#include <stdlib.h>
int my_atoi(const char *str)
{
 assert(str);
 int flag = 1;
 int ret = 0;
 while (isspace(*str))
 {
  str++;
 }
 if (*str == ‘-‘)
 {
  flag = -1;
 }
 if (*str == ‘+‘ || *str == ‘-‘)
 {
  str++;
 }
 while (*str)
 {
  ret = ret * 10 + (*str - ‘0‘);
  str++;
 }
 return ret*flag;
}
int main()
{
 char *str = "-12384";
 int ret = my_atoi(str);
 printf("%d\n", ret);
 return 0;
}
时间: 2024-08-13 19:33:19

将字符串转换成对应的整数(简单版,后续会出复杂版的)的相关文章

C#中将以0x开头的16进制字符串转换成对应的整数

有两种方法: 1. 要转换成有符号整数,使用 Convert.ToInt32(string, 16) : 要转换成无符号整数,使用 Convert.ToUInt32(string, 16) . 如果 16 进制的字符串不是以 0x 或 0X 开头,比如"af37",用这种方法也能进行转换. 2. 要转换成有符号整数,使用 new System.ComponentModel.Int32Converter().ConvertFromString(string) : 要转换成无符号整数,使用

剑指offer之【把字符串转换成整数】

题目: 把字符串转换成整数 链接: https://www.nowcoder.com/practice/1277c681251b4372bdef344468e4f26e?tpId=13&tqId=11202&rp=3&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking 题目描述: 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数. 数值为0或者字符串不是一个合法的数值则返回0

算法实战(八)字符串转换成整数

一.前言 这个题和第七题的类型有点相似,不过这个题目涉及到了一些字符串的处理,由于比较简单,加上在加班的时候,把活干完了,没啥事情可以做了,所以我干脆把这个题目也一起做了. 二.题目 题目:请你来实现一个 atoi 函数,使其能将字符串转换成整数. 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止. 当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号:假如第一个非空字符是数字,则直接将其与之后连续的数字字符组

数组-08. 字符串转换成十进制整数(15)

1 #include<iostream> 2 #include<string> 3 using namespace std; 4 int main(){ 5 string s; 6 int i,sum=0; 7 bool flag=false,f=false; 8 getline(cin,s); 9 for(i=0;s[i]!='#';++i){ 10 if(s[i]=='-'&&!flag) 11 f=true; 12 else if(s[i]<='9'&a

数组-08. 字符串转换成十进制整数

数组-08. 字符串转换成十进制整数(15) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 张彤彧(浙江大学) 输入一个以#结束的字符串,本题要求滤去所有的非十六进制字符(不分大小写),组成一个新的表示十六进制数字的字符串,然后将其转换为十进制数后输出.如果过滤后字符串的首字符为“-”,代表该数是负数. 输入格式: 输入在一行中给出一个以#结束的非空字符串. 输出格式: 在一行中输出转换后的十进制数.题目保证输出在长整型范围内.

程序员面试50题(4)—把字符串转换成整数[算法]

题目:输入一个表示整数的字符串,把该字符串转换成整数并输出.例如输入字符串"345",则输出整数345. 分析:这道题尽管不是很难,学过C/C++语言一般都能实现基本功能,但不同程序员就这道题写出的代码有很大区别,可以说这道题能够很好地反应出程序员的思维和编程习惯,因此已经被包括微软在内的多家公司用作面试题.建议读者在往下看之前自己先编写代码,再比较自己写的代码和下面的参考代码有哪些不同. 首先我们分析如何完成基本功能,即如何把表示整数的字符串正确地转换成整数.还是以"345

C语言atoi()函数:将字符串转换成int(整数)

头文件:#include <stdlib.h> atoi() 函数用来将字符串转换成整数(int),其原型为:int atoi (const char * str); [函数说明]atoi() 函数会扫描参数 str 字符串,跳过前面的空白字符(例如空格,tab缩进等,可以通过 isspace() 函数来检测),直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回. [返回值]返回转换后的整型数:如果 str 不能转换成 int 或者 str 为

字符串转换成整数

题目描述 输入一个由数字组成的字符串,把它转换成整数并输出.例如:输入字符串"123",输出整数123. 给定函数原型int StrToInt(const char *str) ,实现字符串转换成整数的功能,不能使用库函数atoi. 分析与解法 基本思路为:从左至右扫描字符串,把之前得到的数乘以10,然后加上当前字符所表示的数字. 然而,我们需要考虑以下几个问题: 输入为空指针时 数字前面的正负号 非法的字符 整形溢出 前三个问题很容易解决,这里主要考虑整形溢出的问题.一般来说,当发生

C语言将一个字符串转换成整数

1.环境 ubuntu16.04 Eclipse C语言 2.问题 用C语言编写程序,将一个字符串转换成整数. 3.解决方法 程序代码:https://github.com/southeast02/JZOF/blob/master/chap01_page12_1.c