实现将一个字符串转化成对应的整形数字

输入一个字符串比如“+1234”,将其转换成对应的数字1234输出,若是“-1234”,则输出-1234:

#include <stdio.h>
enum Charec{TRUE,FALSE};
int check = FALSE;
int my_atoi(const char *str)
{
 int num = 0;
 if((str != NULL)&&(*str != ‘\0‘))
 {
  int minus = 0;
  if(*str == ‘+‘)
   str++;
  else if(*str == ‘-‘)
  {
   str++;
   minus = 1;
  }
  while(*str != ‘\0‘)
  {
   if((*str >= ‘0‘)&&(*str <= ‘9‘))
   {
    int flag = minus?-1:1;
    num = (num*10)+flag*(*str-‘0‘);
    if((!minus&&(num>0x7FFFFFFF))||(minus&&((signed int)num<0x80000000)))
    {
     num = 0;
     break;
    }
    str++;
   }
   else
   {
    num = 0;
    break;
   }
  }
  if(*str == ‘\0‘)
  {
   check = TRUE;
  }
 }
 return num;
}
int main()
{
 char str[50];
 int ret = 0;
 scanf("%s",str);
 ret = my_atoi(str);
 printf("%d\n",ret);
 return 0;
}

为将输入字符串“0”输出结果0和输入空字符串输出结果也同样为0这两种情况区分开,特意设置了一个全局枚举常量,这样可以检查枚举常量的值来区分,而且须考虑输入的字符串转换成对应的数字超出int的范围的情况。

时间: 2024-08-28 22:01:13

实现将一个字符串转化成对应的整形数字的相关文章

将一个字符串转化为驼峰表示法表示

方法很简单,主要考察对字符串中split方法和slice方法的运用 split() 方法用于把一个字符串分割成字符串数组 第一个参数是必需的,可以是字符串或正则表达式,从该参数指定的地方分割 stringObject. 第二个参数是可选的,表示该参数可指定返回的数组的最大长度. slice() 方法可从已有的数组中返回选定的元素,可以用slice来删除字符串中的第一位字符. 代码如下: <!DOCTYPE html> <html lang="en"> <h

laravel 将数组转化成字符串 再把字符串转化成数组

这是在给阮少翔改代码的时候用的方法, 开始的数据用explored转化成数组不是想要的结果, 我就自己写了一个方法把有用的信息提取出来拼接成一个字符串, 再用explored将字符串转化成数组.   方法有点笨, 但是最后是解决了阮少翔的问题 $re1 = DB::table('admin_user') ->join('admin_role_user','admin_user.id','=','admin_role_user.user_id') ->select('admin_role_use

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

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

JS中如何将字符串转化成日期 日期格式化方法

<!--     /**     * 对Date的扩展,将 Date 转化为指定格式的String     * 月(M).日(d).12小时(h).24小时(H).分(m).秒(s).周(E).季度(q) 可以用 1-2 个占位符     * 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)     * eg:     * (new Date()).pattern("yyyy-MM-dd hh:mm:ss.S") ==> 2006-0

170319 剑指offer 1.把一个字符串转化成整数(简单问题的全面性考虑)

工作的时间越长,越感觉基础的重要性,当我们对程序的框架结构越来越熟悉的时候,越会注意这一点,在工作当中,功能的实现是重要的,但是代码的健壮性,重用性,与扩展性确往往更为重要,在学习新技术的同时,我们或许应该抽出一点时间,去思考代码可能出现的问题. 关于剑指offer的这本书,可能所有刚毕业找工作的人,或者准备找工作的人都曾经看过,但是当时我们面对一些东西的时候心情过于浮躁,往往忽视了简单的却又十分重要的环节,(ps:也可能只有我是这样) 面试中一道简单的问题(把一个字符串转化成整数) 可能接触c

Java读取文件,将字符串转化成日期类型,将日期类型进行加减

最近总用Java读取文件,发现了一种我个人觉得比较好的方法,现在分享给大家 public static void main(String[] args) throws Exception { FileInputStream f = new FileInputStream("文件路径"); InputStreamReader fileInputStream = new InputStreamReader(f); BufferedReader br = new BufferedReader

把一个字符串转化成数字表示

题目大意: 把一个字符串转化成数字表示.AAAA-->4A 解题思路: 直接统计. 1 #include <bits/stdc++.h> 2 using namespace std; 3 4 char s[100005]; 5 6 void solve() 7 { 8 int i = 0; 9 int cnt = 1; 10 char tmp = s[0]; 11 for (i = 1; s[i]; ++i) 12 { 13 if (s[i] == tmp) 14 { 15 ++cnt;

base64字符串转化成图片

package com.dhht.wechat.util; import sun.misc.BASE64Decoder;import sun.misc.BASE64Encoder; import java.io.*; /** * @Author: sh * @Description: ImgUtil * @Date: 9:14 2019/7/1 */public class ImgUtil { /** * 图片转化成base64字符串 * * @param imgPath * @return *

linux c/c++ IP字符串转换成可比较大小的数字

由www.169it.com搜集整理 IP字符串转换成可比较大小的数字,具体代码如下所示: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #include "stdio.h" #include "arpa/inet.h" #include using namespace std; // linux c/c++ IP字符串转换成可比较大小的数字 // g++ -o test_ip_unsigned test_ip_unsigned.cpp int