用ctype.h中的函數(shù)tolower和toupper。前者以大寫的字符作為參數(shù),返回相應(yīng)的小寫字符;后者以小寫的字符作為參數(shù),返回相應(yīng)的大寫字符。
網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、微信小程序開(kāi)發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了德保免費(fèi)建站歡迎大家使用!
#include ctype.h
#include stdio.h
int main()
{
char c = 'A';
printf("%c", tolower(c)); //a
c = 'b';
printf("%c", toupper(c)); //B
return 0;
}
如果沒(méi)有相應(yīng)的大小寫,函數(shù)會(huì)返回字符本身。
#include ctype.h
#include stdio.h
int main()
{
char c = '0';
printf("%c", tolower(c)); //0
printf("%c", toupper(c)); //0
return 0;
}
1、打開(kāi)軟件VisualC++6.0,新建一個(gè)C源程序,書寫C語(yǔ)言程序。
2、首先定義兩個(gè)字符型變量,代碼:charc1,c2;從鍵盤中輸入一個(gè)大寫字母,代碼:c1=getchar();
3、大寫字母與小寫字母的ASCII值相差32,代碼:c2=c1+32;。將大寫字母轉(zhuǎn)化成小寫字母。
4、輸出小寫字母。使用putchar()函數(shù),可以輸出一個(gè)字符型變量。代碼:putchar(c2);
5、連接編譯程序。點(diǎn)擊工具欄按鈕【Compile(Ctrl+F7)】,編譯程序;點(diǎn)擊工具欄上的像感嘆號(hào)的按鈕【BuildExecute(Ctrl+F5)】,組建程序。
6、在程序運(yùn)行窗口中,輸入一個(gè)大寫字母A,按回車鍵,即可輸出一個(gè)小寫字母。
由于大寫字母與小寫字母之間的差值為 32,因此小寫字母轉(zhuǎn)換為大寫字母的方法就是將小寫字母的 ASCII 碼值減去 32,便可得到與之對(duì)應(yīng)的大寫字母。
利用 getchar 函數(shù)從鍵盤上輸入一個(gè)小寫字母,并將其賦給一個(gè)字符變量 a;然后將 a—32 的值賦給字符變量 b;最后進(jìn)行輸出,輸出時(shí)先輸出字母,再將字母以整數(shù)形式輸出。其具體步驟如下:
① 定義兩個(gè)字符變量 a、b;
② a=get char();
③ b=a—32;
④ 打印輸出。
程序代碼
#include stdio.h
int main()
{
char a,b;
printf("輸入一個(gè)小寫字母:\n");
a=getchar();
b=a-32;
printf("轉(zhuǎn)換后的字母為:%c,%d\n",b,b);
return 0;
}
1.函數(shù)名: stpcpy
功 能: 拷貝一個(gè)字符串到另一個(gè)
2.函數(shù)名: strcat
功 能: 字符串拼接函數(shù)
3.函數(shù)名: strchr
功 能: 在一個(gè)串中查找給定字符的第一個(gè)匹配之處\
4.函數(shù)名: strcmp
功 能: 串比較
5.函數(shù)名: strncmpi
功 能: 將一個(gè)串中的一部分與另一個(gè)串比較, 不管大小寫
6.函數(shù)名: strcpy
功 能: 串拷貝
7.函數(shù)名: strcspn
功 能: 在串中查找第一個(gè)給定字符集內(nèi)容的段
8.函數(shù)名: strdup
功 能: 將串拷貝到新建的位置處
9.函數(shù)名: stricmp
功 能: 以大小寫不敏感方式比較兩個(gè)串
10.函數(shù)名: strerror
功 能: 返回指向錯(cuò)誤信息字符串的指針
11函數(shù)名: strcmpi
功 能: 將一個(gè)串與另一個(gè)比較, 不管大小寫
12函數(shù)名: strncmp
功 能: 串比較
13函數(shù)名: strncmpi
功 能: 把串中的一部分與另一串中的一部分比較, 不管大小寫
14函數(shù)名: strncpy
功 能: 串拷貝
15函數(shù)名: strnicmp
功 能: 不注重大小寫地比較兩個(gè)串
16函數(shù)名: strnset
功 能: 將一個(gè)串中的所有字符都設(shè)為指定字符
17函數(shù)名: strpbrk
功 能: 在串中查找給定字符集中的字符
18函數(shù)名: strrchr
功 能: 在串中查找指定字符的最后一個(gè)出現(xiàn)
19函數(shù)名: strrev
功 能: 串倒轉(zhuǎn)
20函數(shù)名: strset
功 能: 將一個(gè)串中的所有字符都設(shè)為指定字符
21函數(shù)名: strspn
功 能: 在串中查找指定字符集的子集的第一次出現(xiàn)
22函數(shù)名: strstr
功 能: 在串中查找指定字符串的第一次出現(xiàn)
23函數(shù)名: strtod
功 能: 將字符串轉(zhuǎn)換為double型值
24函數(shù)名: strtok
功 能: 查找由在第二個(gè)串中指定的分界符分隔開(kāi)的單詞
25函數(shù)名: strtol
功 能: 將串轉(zhuǎn)換為長(zhǎng)整數(shù)
26函數(shù)名: strupr
功 能: 將串中的小寫字母轉(zhuǎn)換為大寫字母
27函數(shù)名: swab
功 能: 交換字節(jié)
有三種方式可以解決c語(yǔ)言大小寫字母的轉(zhuǎn)換
1.使用C語(yǔ)言提供的函數(shù):toupper(),tolower()
使用這兩個(gè)函數(shù)需要引入頭文件:#includectype.h
示例代碼:
輸入如下
2.自己編寫轉(zhuǎn)換函數(shù):
因?yàn)榇笮懼g的ASCII碼值的差值是固定的,因此可以使用‘a(chǎn)’-‘A’來(lái)獲取差值。
實(shí)例代碼:
輸出如下:
3.異或0x20來(lái)實(shí)現(xiàn)轉(zhuǎn)換:
0x20是16進(jìn)制,表示為2進(jìn)制是00100000,這樣可能還是不明顯,轉(zhuǎn)換為10進(jìn)制,其實(shí)就是32
對(duì)了,還是利用32.
異或:相同為0,不同為1. ?也就是說(shuō),任何數(shù)字與0異或都是它本身。
所以將其他位都設(shè)為0,把第6位(從左向右)設(shè)置為1,也就是0x20
如果第6位是1,則異或結(jié)果為0.
如果第6位是0,則異或結(jié)果為1.
實(shí)現(xiàn)了加減32的操作。
示例代碼:
輸入如下:
希望可以幫到你。。。
#include?stdio.h
void?str_trans(char?c[])
{
for(int?i=0;c[i];i++)
{
if(c[i]='z'??c[i]='a')
{
c[i]=(c[i]-'a')+'A';
}else?if(c[i]='A'c[i]='Z')
{
c[i]=(c[i]-'A')+'a';
}
}
}
int?main()
{?char?s[101];
gets(s);
str_trans(s);
puts(s);
scanf("%s",s);
return?0;
}