字符串转整数的问题

要点:要考虑到各种非法参数。

实现:

/**********************************
字符串转整数
by Rowandjj
2014/7/15
***********************************/
#include<iostream>
#include<stdlib.h>//不加这个头文件在九度oj上会编译错误
using namespace std;
int state = 0;//0代表串非法,1代表正常
long Str2Int(const char *str)
{
    long num = 0;
    if(str == NULL)//输入null
    {
        state = 0;
        return 0;
    }
    const char* digit = str;
    int minius = 0;//0代表正数,1代表负数
    while(*digit == ' ')//跳过空格
    {
        digit++;
    }
    if(*digit == '+')
    {
        digit++;  

    }
    else if(*digit == '-')
    {
        minius = 1;
        digit++;
    }
    if(*digit == '\0')//只输入+或者-
    {
        state = 0;
        return 0;
    }  

    while(*digit != '\0')
    {
        if(*digit > '9' || *digit < '0')//非法字符
        {
            state = 0;
            return 0;
        }
        state = 1;
        num = num*10 + (*digit - '0');//核心代码
        digit++;
    }
    //越界
    if(*digit>0x7fffffff || *digit<(signed int)0x80000000)
    {
        state = 0;
        return 0;
    }
  return minius?(0-num) : num;
}
int main()
{
    long digit;
    char str[1000];
    char *p = str;
    while(cin>>p)
    {
        digit = Str2Int(p);
        if(state==0)
        {
            cout<<"My God\n";
        }else//state == 1
        {
            cout<<digit<<endl;
        }
    }
    return 0;
}

返回栏目页:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/sjjg/

作者:csdn博客 RowandJJ

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索字符串
, return
, oj
, if
, 输入
, digital
, 整数
, state
, oj问题
字符串转int
c 整数转字符串、python整数转字符串、java 整数转字符串、整数转字符串、整数转换为字符串,以便于您获取更多的相关知识。

时间: 2025-01-20 18:38:58

字符串转整数的问题的相关文章

剑指offer之字符串转整数

题目描述: 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数. 输入: 输入可能包含多个测试样例. 对于每个测试案例,输入为一个合法或者非法的字符串,代表一个整数n(1<= n<=10000000). 输出: 对应每个测试案例, 若输入为一个合法的字符串(即代表一个整数),则输出这个整数. 若输入为一个非法的字符串,则输出"My God". 样例输入:5-5+8样例输出:5-58    关于这道题目,题目本身还是不错的,真正核心的代码也就那么两行,大部分代码基

poj-关于scanf和gets读入字符串、整数的请教

问题描述 关于scanf和gets读入字符串.整数的请教 /* forward x 向前走x米. back x 先转向后,再走x米. left x 先转向左,再走x米. right x 先转向右,再走x米. up x 先面向上,再走x米. down x 先面向下,再走x米. +x=0 -x=3 +y=1 -y=4 +z=2 -z=5 前面 +x 上面 +z 右面 +y */ #include #include #define L 12 //最长:"forward 10000" /*初始

【字符串处理算法】字符串转换为整数的算法设计及C代码实现

一.需求描述 输入一个由数字构成的字符串,编写程序将该字符串转换为整数并输出. 例如,如果输入的字符串是"12345",那么输出的整数是12345.注意,不要使用C语言的库函数atoi.   二.算法设计 我们都知道,如果给定一个整数123,那么其表示方法是:123=1*100+2*10+3.也就是说,一个整数是由其各位上的数字按照位数求和组成的. 因此,这个需求的解决方法很简单,只要将字符串中的各位数字按照其位数相加就行了.在此过程中,要考虑一些特殊情况. 程序的总体流程如图1所示.

JavaScript将字符串转换为整数的方法_javascript技巧

本文实例讲述了JavaScript将字符串转换为整数的方法.分享给大家供大家参考.具体如下: var s='1'; var s2='2'; alert(parseInt(s) parseInt(s2)); 希望本文所述对大家的javascript程序设计有所帮助. 以上是小编为您精心准备的的内容,在的博客.问答.公众号.人物.课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索javascript , 字符串 , 转换 整数 javascript转换成整数.javascript转换为整数

JavaScript将字符串转换为整数的方法

 具体如下: 1 2 3 var s='1'; var s2='2'; alert(parseInt(s) parseInt(s2));

剑指offer系列之四十八:把字符串转成整数

题目描述 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数 这里的关键是要对输入的字符串进行全面的考虑.包括字符串是否有效的判断.是否是负数以及字符串表示的整数是否越界等问题.对于字符串有效性的判断主要是null以及空串的判定:负数之所以需要判断是因为在计算的时候是有用的:而是否越界的问题也是需要考虑的.因为一个越界的数是不可能计算出来的,那么这时候可以简单返回一个0,表示越界的数.这三点都考虑之后,整体代码的健壮性就比较好了.下面是这种思路的实现代码(已被牛客AC),详细的已经在

C++实现十六进制字符串转换为十进制整数的方法_C 语言

本文实例讲述了C++实现十六进制字符串转换为十进制整数的方法.分享给大家供大家参考.具体实现方法如下: /* * 将十六进制数字组成的字符串(包含可选的前缀0x或0X)转换为与之等价的整型值 */ #include <stdio.h> #include <math.h> /* 将十六进制中的字符装换为对应的整数 */ int hexchtoi(char hexch ) { char phexch[] = "ABCDEF"; char qhexch[] = &qu

java Socket获取十六进制数据转整数和字符串

最近在开发中使用到java对接一个体温检测设备,业务是用过扫描二维码确认身份,然后检测体温,最后提交到服务器,过程中使用到了十六进制字符串和整数.字符串.汉字等之间的互相转换. socket接收代码:  代码如下 复制代码 InputStream input = null;     public void run() {         System.out.println("1111111111111111111111111111111111111111111111111111111"

redis基本命令之一:字符串、散列、列表

1.Redis命令 1.1获得符合规则的键名列表 keys pattern   1.2判断一个键是否存在 exists key 1.3删除键 del key 1.4获得键值的数据类型 type key   2.redis字符串类型 2.1赋值与取值 set key value get key 2.2 递增数字 字符串类型可以存储任何形式的字符串,当存储的字符串是整数形式时,redis提供了一个使用的命令INCR,其作用是让当前键值递增,并返回递增后的值,用法为: incr num 当要操作的键不