Write a program to convert string to number without using library function。

2024-06-09 09:32

本文主要是介绍Write a program to convert string to number without using library function。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、问题

/*

Write a program to convert string to number without using library function。

*/


2、算法

#define MAX_LONG 0X7FFFFFFF
long foo(const char* str)
{
        int sign = 1 ;
        long num = 0 ;

        const char* p = str ;

        //假设输入的字符串是合法的
        if ( *p == '-' )
        {
                sign = -1 ;
                p++ ;
        }else if ( *p == '+' )
        {
                sign = 1 ;
                p++ ;
        }

        while(*p)

        {

  // long 取值范围-2147483648~ 2147483647

                if ( (num > LONG_MAX/10) || 
                        (         (num == LONG_MAX/10) && 
                                ( (-1 == sign && *p > '8') || (1 == sign && *p > '7')) ))
                {
                        printf("out of bound") ;
                        return 0 ;
                }

                if ( *p >='0' && *p <='9' )
                {
                        num = num*10 + (*p - '0') ;
                }


                *p++ ;
        }

        printf("%d", num * sign) ;
        return num * sign ;

}

这篇关于Write a program to convert string to number without using library function。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1044803

相关文章

BD错误集锦1——[Hive]ERROR StatusLogger No log4j2 configuration file found. Using default configuration:

错误描述:在使用IDEA进行jdbc方式连接到hive数据仓库时,出现以下错误:                ERROR StatusLogger No log4j2 configuration file found. 问题原因:缺少log4j2.xml文件   <?xml version="1.0" encoding="UTF-8"?><Configuration><Appender

1_CString char* string之间的关系

CString转char*,string string转char*,CString char* 转CString,string 一、CString转char*,string //字串转换测试 CString CString1; std::string string1; CHAR* char1=NULL; //1string1=CString1.GetBuffer();CStri

论文阅读--Efficient Hybrid Zoom using Camera Fusion on Mobile Phones

这是谷歌影像团队 2023 年发表在 Siggraph Asia 上的一篇文章,主要介绍的是利用多摄融合的思路进行变焦。 单反相机因为卓越的硬件性能,可以非常方便的实现光学变焦。不过目前的智能手机,受制于物理空间的限制,还不能做到像单反一样的光学变焦。目前主流的智能手机,都是采用多摄的设计,一般来说一个主摄搭配一个长焦,为了实现主摄与长焦之间的变焦,目前都是采用数字变焦的方式,数字变焦相比于光学

[AIGC] Guava Library 中常用的一些工具类详解

Google Guava 是一个功能强大的 Java 库,它提供了大量用于优化代码和提高代码质量的工具。该库提供了许多常用的实用类,下面我们来详细介绍一些在编程应用开发中经常需要的。 文章目录 1. 集合类2. I/O 类1. ByteStreams(字节流)2. CharStreams(字符流)3. Files(文件)4. MoreFiles(文件)5. Resources(资

query string parameters 和request payload

HTTP请求中,如果是get请求,那么表单参数以name=value&name1=value1的形式附到url的后; post请求:表单参数是在请求体中,也是name=value&name1=value1的形式在请求。 export const voucherDetailAdd=(token,formStr) =>{return axios.post(`${base}/voucher/deta

github 报错 git fatal: unable to write new index file

错误一:git fatal: unable to write new index file主要原因就是服务器磁盘空间不够导致的,增加服务器空间就OK了在百度上面搜索没得到什么有效信息,在gooogle上搜索得到很多有效信息 Finding large directories with something like the following helped clean up some log fi

【Java】ArrayListString转化为String数组问题

Java的容器类Collections中toArray()方法,可以把诸如ArrayList<String>的动态数组、不定长转化静态数组、定长数组String[] 但是,如下的转化方式是错误的。 [java]  view plain copy String[] strArray = (String[]) arrayList.toArray();   如果这样执行会导致

在WinCE的C#编程中,需要静态调用C++的动态库,需要添加using System.Runtime.InteropServices

using System.Runtime.InteropServices;         [DllImport("Win32DLL.dll", EntryPoint = "WriteREG_SZToRegTCHAR")]         private static extern bool WriteREG_SZToRegTCHAR(int iFlag, string regKeyP

C++:字符串string类使用

C++字符串和C字符串的对比 (1)C语言严格说没有字符串的概念,C字符串其实就是字符数组或字符指针 (2)C++和之后的java等都有字符串,本质是一个class (3)C++字符串的优势是标准库自带可用于字符串的各种处理算法和方法 (4)C++实际开发中建议使用C++字符串而不是沿用C式字符串 字符串string类使用 std::string str = "Hello, Worl

Java中String和StringBuffer的区别?

String 不是简单类型,而是一个类,它被用来表示字符序列。字符本身符合 Unicode 标准,其初始化方式有两种。如:String greeting=“Good Morning! \n”;String greeting=new String(=“Good Morning! \n”);String的特点是一旦赋值,便不能更改其指向的字符对象,如果更改,则会指向一个新的字符对象 。StringB