正文 第22章 數組4(1 / 1)

在實際編程中常需要對個別字符進行處理,C語言也提供了字符函數。這些函數不能被應用於整個字符串,但可以被應用於字符串中的個別字符。表71和表72羅列了幾個最有用且常用的字符串函數,使用這些函數必須包含頭文件“ctype.h”。

#include

#include

voidmain()

{charch;

printf("Inputaline:\n");

while((ch=getchar())!=\n)

{if(isalpha(ch))/*如果是一個字母*/

putchar(ch+1);/*加密*/

else/*否則*/

putchar(ch);/*原樣輸出*/

putchar(ch);/*輸出換行符*/

程序運行結果:

Inputaline:

Look!It’saexample!

Mppl!Ju’tbfybnqmf!

可以看到,結果中大寫字母和小寫字母都被譯碼,而空格和標點符號則沒有變化。

[例715]將句中小寫字母改成大寫。

#include

#include

voidmain()

{charch;

printf("Inputaline:\n");

while((ch=getchar())!=\n)

putchar(toupper(ch));

/*若是小寫字母,返回對應的大寫字母再輸出*/

putchar(ch);/*輸出換行符*/

程序運行結果:

Inputaline:

Tostop,presstheEnterkeyataline’sstart!

TOSTOP,PRESSTHEENTERKEYATALINE’SSTART!

從結果可以看出,句子中的小寫字母都轉變成了對應的大寫字母,而其他符號沒有變化。

需要注意的是,字符映射函數並不會改變原始的參數,它們隻返回改變後的值。

[例716]從鍵盤上任意輸入五位學生的姓名,找出並輸出按字典排序排在最前麵的學生的姓名。

學生的姓名就是一個字符串,應使用字符數組來存放。所謂字典順序即將字符串按照由小到大的順序排列。程序如下:

#include

#include

#defineNAMELEN80

#defineNUM5

voidmain()

{charstu[NAMELEN],min[NAMELEN];

inti;

printf("Pleaseinput5students’names:\n");

gets(stu);/*輸入第一個字符串*/

strcpy(min,stu);/*將其作為最小字符串保存*/

for(i=1;i