1、switch函數(shù)只能對(duì)整數(shù)類(lèi)型的變量進(jìn)行枚舉,而字符串類(lèi)型不屬于整型變量。因此,必須對(duì)字符串進(jìn)行轉(zhuǎn)化。根據(jù)不同的字符串比較結(jié)果,執(zhí)行不同的操作。

為友好等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及友好網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為網(wǎng)站建設(shè)、成都網(wǎng)站制作、友好網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專(zhuān)業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
2、例程:
假如有這幾個(gè)固定的字符串"string1","string2",..."stringn",可以做這種變換:
char str[100]="..."http://假設(shè)已經(jīng)賦值了
int i=0;
char str1[]="string1",str2[]="string2",str3[]="string3";//可以任意設(shè)
if(strcmp(str,str1)==0)//比較,如果str數(shù)組中存的剛好是字符串string1,下面同理,
i=1;
else if(strcmp(str,str2)==0)
i=2;
else if(strcmp(str,str3)==0)
i=3;
else
i=4;
//這樣就映射出來(lái)了,用i的值,來(lái)映射不同的str
switch(i)
{
case 1:
...
break;
case 2:
...
break;
case 3:
...
break;
case 4:
...
break;
dafault:
....
break;
}
首先對(duì)于一個(gè)整數(shù),無(wú)論是十進(jìn)制還是十六進(jìn)制,它的值是一定的。
所以,轉(zhuǎn)換16進(jìn)制和10進(jìn)制原理是一樣的,先求出轉(zhuǎn)換后的值,然后再以十六進(jìn)制的形式輸出就行了。
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
你不會(huì)是直接從網(wǎng)頁(yè)里面復(fù)制就粘貼到編輯器里面吧?
那樣不行的,你自己重新輸入一下。或者先拷貝到文本文檔里面,再?gòu)奈谋疚臋n里面復(fù)制。從網(wǎng)頁(yè)里面直接復(fù)制有特殊字符的。
還有,程序函數(shù)不能在主函數(shù)里面定義的。
#include
int
convert(char
*
str);
void
main()
{
char
str[20];
int
result;
scanf("%s",str);
//自己輸入一個(gè)十六進(jìn)制的串
result
=
convert(str);
printf("%0x",result);
}
int
convert(char
*
str)
{
int
i,sum
=
0;
for(i
=
0;str[i]
!=
'\0';i++)
{
if(str[i]='0'
str[i]='9')
sum
+=
sum*16
+
str[i]-'0';
else
if(str[i]='f'
str[i]='a')
sum
+=
sum*16
+
str[i]-'a'+1;
else
if(str[i]='F'
str[i]='A')
sum
+=
sum*16
+
str[i]-'A'+1;
}
return
sum;
}
c語(yǔ)言中,可以使用atoi()函數(shù)將字符串轉(zhuǎn)化成整數(shù)型并輸出。
atoi (表示 ascii to integer)是把字符串轉(zhuǎn)換成整型數(shù)的一個(gè)函數(shù),應(yīng)用在計(jì)算機(jī)程序和辦公軟件中。int atoi(const char *nptr) 函數(shù)會(huì)掃描參數(shù) nptr字符串,會(huì)跳過(guò)前面的空白字符(例如空格,tab縮進(jìn))等。
如果 nptr不能轉(zhuǎn)換成 int 或者 nptr為空字符串,那么將返回 0 。特別注意,該函數(shù)要求被轉(zhuǎn)換的字符串是按十進(jìn)制數(shù)理解的。atoi輸入的字符串對(duì)應(yīng)數(shù)字存在大小限制(與int類(lèi)型大小有關(guān)),若其過(guò)大可能報(bào)錯(cuò)-1。
擴(kuò)展資料:
C語(yǔ)言常用函數(shù):
1、int abs(int i)
返回整型參數(shù)i的絕對(duì)值。
2、double cabs(struct complex znum)
返回復(fù)數(shù)znum的絕對(duì)值。
3、double fabs(double x)
返回雙精度參數(shù)x的絕對(duì)值。
4、long labs(long n)
返回長(zhǎng)整型參數(shù)n的絕對(duì)值。
5、double exp(double x)
返回指數(shù)函數(shù)ex的值。
6、double frexp(double value,int *eptr)
返回value=x*2n中x的值,n存貯在eptr中。
7、double ldexp(double value,int exp)
返回value*2exp的值。
8、double log(double x)
返回logex的值。
9、double log10(double x)
返回log10x的值。
10、double pow(double x,double y)
返回x^y的值。
參考資料來(lái)源:百度百科-atoi
分享名稱:字符串轉(zhuǎn)換函數(shù)c語(yǔ)言 字符串轉(zhuǎn)換函數(shù)c語(yǔ)言代碼
轉(zhuǎn)載注明:http://chinadenli.net/article28/dojiccp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、做網(wǎng)站、關(guān)鍵詞優(yōu)化、移動(dòng)網(wǎng)站建設(shè)、域名注冊(cè)、品牌網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)