C 語(yǔ)言字符串練習(xí)
在 C 語(yǔ)言中字符串的應(yīng)用比較多,所以在這里我們實(shí)現(xiàn)一個(gè)函數(shù),函數(shù)功能是將一串給定的字符串中的大寫(xiě)字符全部轉(zhuǎn)換為小寫(xiě)字符。
1. 示例程序
在程序中,我們需要實(shí)現(xiàn)兩個(gè)主要的功能,一個(gè)是將字符串中的每個(gè)字符都訪問(wèn)一次。另外一個(gè)就是將遍歷過(guò)程中獲取的大寫(xiě)字符轉(zhuǎn)換為小寫(xiě)字符。
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main()
{
char a[100] = "Welcome to our WIKI! It is a interest place.", temp;
printf("Before convert: %s\n", a);
for (int i = 0; i < strlen(a); i++)
{
temp = tolower(a[i]);
a[i] = temp;
}
printf("After convert: %s\n", a);
return 0;
}
運(yùn)行結(jié)果:
Before convert: Welcome to our WIKI! It is a interest place.
After convert: welcome to our wiki! it is a interest place.
程序首先通過(guò)一個(gè)循環(huán)語(yǔ)句,遍歷訪問(wèn)字符串的每一個(gè)元素。在這里,我們用了 C 語(yǔ)言標(biāo)準(zhǔn)庫(kù)中的字符串函數(shù) strlen 來(lái)獲取字符串的長(zhǎng)度。不過(guò)這里請(qǐng)注意的是,這里獲取的長(zhǎng)度不是字符數(shù)組的長(zhǎng)度,而是里面包含的字符的長(zhǎng)度。這樣就不用循環(huán) 100 次,因?yàn)槔锩娲鎯?chǔ)的字符內(nèi)容很顯然不到 100 個(gè),同時(shí),這個(gè)字符數(shù)組中在字符后面會(huì)緊接著一個(gè)字符串的空串符號(hào),也就是 \0 這個(gè)字符。但是這個(gè)字符不會(huì)出現(xiàn)在我們的循環(huán)中,因?yàn)橥ㄟ^(guò) strlen 這個(gè)函數(shù)獲取的字符串的長(zhǎng)度中是不包含這個(gè)符號(hào)的。
在循環(huán)語(yǔ)句的內(nèi)部,我們只要簡(jiǎn)單的執(zhí)行將每個(gè)元素執(zhí)行一次大寫(xiě)轉(zhuǎn)換為小寫(xiě)的函數(shù)操作就可以了。這個(gè)函數(shù)是 ctype.h 函數(shù)庫(kù)中的函數(shù),只會(huì)將大寫(xiě)字母轉(zhuǎn)換為小寫(xiě)字母,不會(huì)變換小寫(xiě)字母以及符號(hào)。
這里我們需要利用一個(gè)臨時(shí)的字符變量來(lái)存儲(chǔ)變化后的變量,然后再賦值給當(dāng)前的字符數(shù)組。
2. 小結(jié)
在這里我們展示了一個(gè)簡(jiǎn)單的字符串的練習(xí)。在 C 語(yǔ)言中對(duì)于字符串的處理除了之前介紹的可以使用字符串函數(shù)以外,更過(guò)的時(shí)候是利用其字符數(shù)組的特性,可以精確的通過(guò)索引訪問(wèn)到每一個(gè)字符元素,然后再對(duì)其進(jìn)行處理。
精慕門(mén)1289550 ·
2025 imooc.com All Rights Reserved |