1. 程式人生 > >字串轉換成整數(atoi)函式的具體實現

字串轉換成整數(atoi)函式的具體實現

程式碼如下:

#include "stdio.h"

int Atoi(char* str)
{
int sum=0;
while(*str!='\0')
{
if (*str>='0' && *str<='9')
{
sum=sum*10+*str-'0';
}
str++;
}


return sum;
}


int main()
{
char mystr[]="546";
int M=Atoi(mystr);
printf("%d\n",M);
return 0;
}


在Atoi函式中,關鍵

這個函式中沒有考慮字串開頭有“+”、“-”符號,也沒有考慮字串中有除了0到9之外的字元~~所以還是要簡單一些

具體思路:

本來我是想求出字串str 的長度,然後用for 迴圈,從第一個字元到最後一個字元,再用sum=sum*10+str[i]-'0';,但是字串的長度不能直接用strlen函式,

我還得自己實現strlen,所以比較麻煩~~

實際上可以不用求字串的長度,只要把字串與‘\0’ 比較即可,如果不相等,說明字串還沒結束,可以利用每個字元要介於‘0’和‘’9 之間,再獲取指標指向的每一個字元,可以將字串轉換成整數

相關推薦

字串轉換整數atoi函式具體實現

程式碼如下: #include "stdio.h" int Atoi(char* str) {int sum=0;while(*str!='\0'){if (*str>='0' && *str<='9'){sum=sum*10+*str-'0';

字串轉換整數Java

題目:字串轉換為整數。 思路:將字串轉化為整數首先是遍歷字串中的每一個字元,有三種情況:首字元是正號,首字元是負號,首字元非正負號;然後遍歷每一個字元進行num = num * 10 + charAr

劍指offer之將字串轉換整數Java實現

將字串轉換成整數 NowCoder 題目描述: 將一個字串轉換成一個整數(實現Integer.valueOf(string)的功能,但是string不符合數字要求時返回0),要求不能使用字串轉換整數的庫函式。 數值為0或者字串不是一個合法的數值則返回0。 輸入描述: 輸入一個

字串轉換整數 bug版

題目詳情(網址http://hero.pongo.cn/home/index)輸入一個表示整數的字串,把該字串轉換成整數並輸出,例如輸入字串"345",則輸出整數345。 請完成函式StrToInt,實現字串轉換成整數的功能。友情提醒:提交程式碼之前,請複查下你的程式,

字串轉換整數字串

題目描述:將一個字串轉換成一個整數,要求不能使用字串轉換整數的庫函式。 數值為0或者字串不是一個合法的數值則返回0。 輸入描述:輸入一個字串,包括數字字母符號,可以為空 輸出描述:如果是合法的數值表達則返回該數字,否則返回0  思路一: public class Solu

劍指offer系列十七求1+2+3+...+n,不用加減乘除做加法,把字串轉換整數

求1+2+3+...+n 題目描述 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)。 解題思路: 法一:利用python的特性 法二:用兩個函式,一個遞迴,另一個終止遞迴。如果對n連續進

【LeetCode 中等題】5-字串轉換整數atoi

宣告: 今天是中等題第5道題。實現一個 atoi 函式,使其能將字串轉換成整數。以下所有程式碼經過樓主驗證都能在LeetCode上執行成功,程式碼也是借鑑別人的,在文末會附上參考的部落格連結,如果侵犯了博主的相關權益,請聯絡我刪除 (手動比心ღ( ´・ᴗ・` )) 正

LeetCode第八題 字串轉換整數atoijava

題目描述: 請你來實現一個 atoi 函式,使其能將字串轉換成整數。 首先,該函式會根據需要丟棄無用的開頭空格字元,直到尋找到第一個非空格的字元為止。 當我們尋找到的第一個非空字元為正或者負號時,則將該符號與之後面儘可能多的連續數字組合起來,作為該整數的正

位運算字串轉換整數

public int StrToInt(String str) { if (str == null || str.len

C:atoi 字串轉換整數

int atoi(char *str) { int sign=1; int result=0; //去前導空白 while (isspace(*str)) { str++; } //判斷正負 if (*str=='-') {

swift 字串整數atoi- LeetCode

實現 atoi,將字串轉為整數。 在找到第一個非空字元之前,需要移除掉字串中的空格字元。如果第一個非空字元是正號或負號,選取該符號,並將其與後面儘可能多的連續的數字組合起來,這部分字元即為整數的值。如果第一個非空字元是數字,則直接將其與之後連續的數字字元組合起來,形成整數。 字串可

將帶下劃線的字串轉換大寫下劃線後大寫的高效方法

如test_tb_kkk_llll  轉換為    TestTbKkkLlll 原理: 1. 判斷是否包含下劃線     (1) 包含:     &

一個好用的函式 wcstoul:把CString包含的字串轉換整數

Convert strings to an unsigned long-integer value.   unsigned long wcstoul( const wchar_t *nptr, wchar_t **endptr, int base );

007——字串整數atoi

// // Created by HINTS on 2018/11/29. // #include <iostream> #include <string> using namespace std; int myAtoi(string str){ int i =

Python:使用map和reduce實現整數字符串轉換整數忽略int函式

#!/usr/bin/env python # coding:UTF-8 """ @version: python3.x @author:曹新健 @contact: [email protected] @software: PyCharm @file: map和

每日LeetCode之 字串整數atoi

解決方案: public int myAtoi(String str) { if(str.isEmpty()) return 0; int flag =1,i=0;

LeetCode字串整數atoi

字串轉整數(atoi) 實現 atoi,將字串轉為整數。 在找到第一個非空字元之前,需要移除掉字串中的空格字元。如果第一個非空字元是正號或負號,選取該符號,並將其與後面儘可能多的連續的數字組合起來,這部分字元即為整數的值。如果第一個非空字元是數字,則直接將其

LeetCode ---- 字串整數atoi

實現 atoi,將字串轉為整數。 在找到第一個非空字元之前,需要移除掉字串中的空格字元。如果第一個非空字元是正號或負號,選取該符號,並將其與後面儘可能多的連續的數字組合起來,這部分字元即為整數的值。如果第一個非空字元是數字,則直接將其與之後連續的數字字元組合起

實現一個函式,把一個字串轉換整數

作者:翁鬆秀 劍指offer之“把一個字串轉換成整數” 很多人看到這麼簡單的面試題目,都是大筆一揮,立馬寫下洋洋灑灑函式: int StringToInt(char* string){ int num = 0; while(*str

8. 字串整數atoi

實現 atoi,將字串轉為整數。 提示:仔細考慮所有輸入情況。如果你想挑戰自己,請不要看下面並自己考慮所有可能的輸入情況。 說明:這題解釋的比較模糊(即沒有指定輸入格式)。你得事先彙集所有的輸入情況。 atoi的要求: 這個函式需要丟棄之前的空白字元,直到找到第一