亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C語言的字符串轉換函數怎么用

發布時間:2022-02-18 17:18:45 來源:億速云 閱讀:166 作者:iii 欄目:開發技術

這篇“C語言的字符串轉換函數怎么用”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“C語言的字符串轉換函數怎么用”文章吧。

字符串轉整數

字符串轉換為整數的函數有兩個,他們的函數原型如下:

	int __cdecl atoi(const char *_Str);
  	long __cdecl atol(const char *_Str);

這兩個函數的用法都很簡單,atoi函數將字符串轉換為整數int型,atol函數將字符串轉換為長整形long int型。如果轉換無效,返回值都為0,下面通過一個簡單的例子看一下這兩個函數的用法。

#include <stdio.h>
#include <stdlib.h>
int main(int argc, char** argv)
{
   int val;
   long val_l;
   char str[20];
   strcpy(str, "1234");
   val = atoi(str);
   printf("字符串值 = %s, 整型值 = %d\n", str, val);
   strcpy(str, "abc");
   val = atoi(str);
   printf("字符串值 = %s, 整型值 = %d\n", str, val);
   
   strcpy(str, "98993489");
   val_l = atol(str);
   printf("\n字符串值 = %s, 長整型值 = %ld\n", str, val_l);
   strcpy(str, "abc123");
   val_l = atol(str);
   printf("字符串值 = %s, 長整型值 = %ld\n", str, val_l);
   return 0;
}

給字符串賦不同的值,然后使用,atoi函數和atol函數對字符串進行轉換,輸出結果如下:

C語言的字符串轉換函數怎么用

通過結果可以看出,只有當字符串有效時才能正確的轉換成整數,否則轉換的結果就為0。

將字符串轉換為整數的函數還有以下兩個:

long __cdecl strtol(const char * __restrict__ _Str,char ** __restrict__ _EndPtr,int _Radix);
unsigned long __cdecl strtoul(const char * __restrict__ _Str,char ** __restrict__ _EndPtr,int _Radix);

strtol() 函數用來將字符串轉換為長整型數(long),它有三個參數:

  • _Str 為要轉換的字符串,

  • _EndPtr 為第一個不能轉換的字符的指針,

  • _Radix 為字符串 str 所采用的進制。

trtol() 函數會將參數str字符串根據參數base來轉換成長整型數(long)。參數base范圍從236,或0。參數base代表str采用的進制方式,如base值為10則采用10進制,若base值為16則采用16進制等。

下面通過一個簡單的例子演示一下strtol() 函數的用法。

#include <stdio.h>
#include <stdlib.h>
int main(int argc, char** argv)
{
	char str[30] = "123 -456 abc";
	char *pEnd;
	long ret1,ret2;
	ret1 = strtol(str, &pEnd, 10);
	ret2 = strtol(pEnd, &pEnd, 10);
	printf("數字1是: %ld\n", ret1);
	printf("數字2是: %ld\n", ret2);
	printf("字符串部分是: %s \n", pEnd);
	return 0;
}

定義一個字符串,然后使用strtol() 函數轉換字符串中的數字,輸出結果如下:

C語言的字符串轉換函數怎么用

通過打印的結果可以看出,strtol() 函數將字符串中的兩個數字都成功換成為整數了。

strtol() 函數讀取字符串時,讀取到第一個空格是,由于空白字符不能轉換,所以函數返回,并將空白字符的存儲在 pEnd中,接下來從空白位置繼續轉換,將字符串“-456”轉換為數字之后,又遇到了空白字符,不能繼續轉換,函數退出,將第二個空白字符存儲在 pEnd中,最后將剩余的字符串換打印出來。

通過strtol() 函數就可以智能的將字符串的數字提取出來。

strtoul 函數用來將字符串轉換成無符號長整型數(unsigned long),它的用法和strtol() 函數基本一樣。

修改上面的代碼如下:

#include <stdio.h>
#include <stdlib.h>
int main(int argc, char** argv)
{
	char str[30] = "123 456 abc";
	char *pEnd;
	long ret1,ret2;
	ret1 = strtoul(str, &pEnd, 10);
	ret2 = strtoul(pEnd, &pEnd, 10);
	printf("數字1是: %lu\n", ret1);
	printf("數字2是: %lu\n", ret2);
	printf("字符串部分是: %s \n", pEnd);
	return 0;
}

輸出結果為:

C語言的字符串轉換函數怎么用

如果在字符串的數字前面添加上負號,轉換的結果就會出錯。

C語言的字符串轉換函數怎么用

在使用strtol() 函數和strtoul 函數時要注意兩點:

  • 當 base 的值為 0 時,默認采用 10 進制轉換,但如果遇到'0x' / '0X'前置字符則會使用 16 進制轉換,遇到 '0' 前置字符則會使用 8 進制轉換。

  • 若 endptr 不為NULL,則會將遇到的不符合條件而終止的字符指針由 endptr 傳回;若 endptr 為 NULL,則表示該參數無效,或不使用該參數。

以上就是關于“C語言的字符串轉換函數怎么用”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

互助| 思南县| 祁阳县| 保康县| 宣恩县| 勐海县| 新邵县| 绥棱县| 大兴区| 柯坪县| 鄄城县| 西城区| 喜德县| 奈曼旗| 威信县| 凤台县| 海晏县| 黑山县| 南充市| 吉林市| 赣州市| 榆林市| 高清| 于都县| 靖西县| 云林县| 淳安县| 长寿区| 丹棱县| 双柏县| 马尔康县| 改则县| 科尔| 墨竹工卡县| 子长县| 前郭尔| 平利县| 青川县| 蓬莱市| 宿州市| 芷江|