假設(shè)原字符串為s,用兩個(gè)函數(shù),兩個(gè)數(shù)組a,b;
創(chuàng)新互聯(lián)公司堅(jiān)實(shí)的技術(shù)研發(fā)基礎(chǔ)贏得了行業(yè)內(nèi)的良好口碑,公司成立10多年來(lái),為數(shù)千家企業(yè)提供過(guò)網(wǎng)站建設(shè)、軟件開發(fā)、搜索引擎優(yōu)化技術(shù)、互聯(lián)網(wǎng)大數(shù)據(jù)整合營(yíng)銷服務(wù),多年的技術(shù)服務(wù)成功經(jīng)驗(yàn)、眾多的客戶使我們能懂得更多,做得更好。"讓您的網(wǎng)站跑起來(lái)"是我們一直追求的目標(biāo)!
一個(gè)函數(shù)將字符串里的單個(gè)字符轉(zhuǎn)換成0-9這幾個(gè)數(shù)字。將字符逐個(gè)讀入a數(shù)組,遇到“.”則將點(diǎn)之前的數(shù)字合并讀入b數(shù)組,如:a[2]='.',b[1]=a[1]+a[0]*10,然后將a數(shù)組清空繼續(xù)讀入“.”后面的數(shù),直到遇到空格,如:a[1]=a[1]+s[3]/10;
a[2]=a[1]+s[4]/1e2;
然后將a[2]加到b[1]里。
1、C語(yǔ)言有atoi、atol、atof等庫(kù)函數(shù),可分別把ASCII編碼的字符串轉(zhuǎn)化為int、long、float類型的數(shù)字。
頭文件:stdlib.h
函數(shù)原型:int atoi(const char* nptr);
2、舉個(gè)例子:
char *str="123";
int num=atoi(str);
執(zhí)行后,num的值被初始化為123
字符串本身就是ASCII碼的數(shù)組呀
使用%s打印的就是字符串
使用%d一位一位的打印就是ASCII碼了
for(i=0;istrlen(a);i++)
{
printf("%d?",a[i]);
}
上面的打印就是打印字符串的ASCII碼
字轉(zhuǎn)換:wctomb、mbtowc,wc 指 Wide charactor,mb 指 Multi-byte。
字符串轉(zhuǎn)換:wcstombs、mbstowcs,wcs 和 mbs 的 s 指 string。
這 4 個(gè)函數(shù)是 C 標(biāo)準(zhǔn)函數(shù)庫(kù)函數(shù)中的。如果只是在 Windows 平臺(tái)下編程,可直接調(diào)用 Windows API 函數(shù) WideCharToMultiByte 和 MultiByteToWideChar 實(shí)現(xiàn)。但是如果調(diào)用標(biāo)準(zhǔn)庫(kù)函數(shù)的話,在 Linux 下也是有效的。調(diào)用標(biāo)準(zhǔn)庫(kù)函數(shù),首先必須包含 locale.h 并調(diào)用 setlocale(LC_ALL, "") 后才能正確轉(zhuǎn)換。Windows 下的 Multi-byte 是 ANSI 編碼的,Wide charactor 是 Unicode (UTF-16) 編碼,而 Linux 下的 Multi-byte 是 UTF-8 編碼的,Wide charactor 是 Unicode (UTF-32) 編碼。
#include stdio.h
#include stdlib.h
#include locale.h
int main(void)
{
char str[12];
wchar_t wstr[] = { 0x52B3, 0x788C, 0 };
setlocale(LC_ALL, "");
wcstombs(str, wstr, sizeof(str)/sizeof(char));
printf("%s", str);
return 0;
}
#includestdio.h
voidmain()
{
unsignedchara;
printf("enterchar:");
scanf("%C",a);
printf("ascii=%d",a);//強(qiáng)制轉(zhuǎn)化為ascii碼
}
擴(kuò)展資料
C語(yǔ)言ASCII編碼的來(lái)源
ASCII碼
一個(gè)二進(jìn)制位(Bit)有0、1兩種狀態(tài),一個(gè)字節(jié)(Byte)有8個(gè)二進(jìn)制位,有256種狀態(tài),每種狀態(tài)對(duì)應(yīng)一個(gè)符號(hào),就是256個(gè)符號(hào),從00000000到11111111。美國(guó)制定了一套英文字符與二進(jìn)制位的對(duì)應(yīng)關(guān)系,稱為ASCII碼,沿用至今。
ASCII碼規(guī)定了128個(gè)英文字符與二進(jìn)制的對(duì)應(yīng)關(guān)系,占用一個(gè)字節(jié)(實(shí)際上只占用了一個(gè)字節(jié)的后面7位,最前面1位統(tǒng)一規(guī)定為0)。例如,字母a的的ASCII碼為01100001,那么你暫時(shí)可以理解為字母a存儲(chǔ)到內(nèi)存之前會(huì)被轉(zhuǎn)換為01100001,讀取時(shí)遇到01100001也會(huì)轉(zhuǎn)換為a。
#includestdio.h
voidmain()
{
unsignedchara;
printf("enterchar:");
scanf("%C",a);
printf("ascii=%d",a);//強(qiáng)制轉(zhuǎn)化為ascii碼
}
擴(kuò)展資料:
在標(biāo)準(zhǔn)ASCII中,其最高位(b7)用作奇偶校驗(yàn)位。所謂奇偶校驗(yàn),是指在代碼傳送過(guò)程中用來(lái)檢驗(yàn)是否出現(xiàn)錯(cuò)誤的一種方法,一般分奇校驗(yàn)和偶校驗(yàn)兩種。奇校驗(yàn)規(guī)定:正確的代碼一個(gè)字節(jié)中1的個(gè)數(shù)必須是奇數(shù),若非奇數(shù),則在最高位b7添1;偶校驗(yàn)規(guī)定:正確的代碼一個(gè)字節(jié)中1的個(gè)數(shù)必須是偶數(shù),若非偶數(shù),則在最高位b7添1。
參考資料來(lái)源:百度百科-ASCII