C 語言字符串練習(xí)
在 C 語言中字符串的應(yīng)用比較多,所以在這里我們實現(xiàn)一個函數(shù),函數(shù)功能是將一串給定的字符串中的大寫字符全部轉(zhuǎn)換為小寫字符。
1. 示例程序
在程序中,我們需要實現(xiàn)兩個主要的功能,一個是將字符串中的每個字符都訪問一次。另外一個就是將遍歷過程中獲取的大寫字符轉(zhuǎn)換為小寫字符。
#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;
}
運行結(jié)果:
Before convert: Welcome to our WIKI! It is a interest place.
After convert: welcome to our wiki! it is a interest place.
程序首先通過一個循環(huán)語句,遍歷訪問字符串的每一個元素。在這里,我們用了 C 語言標(biāo)準(zhǔn)庫中的字符串函數(shù) strlen
來獲取字符串的長度。不過這里請注意的是,這里獲取的長度不是字符數(shù)組的長度,而是里面包含的字符的長度。這樣就不用循環(huán) 100 次,因為里面存儲的字符內(nèi)容很顯然不到 100 個,同時,這個字符數(shù)組中在字符后面會緊接著一個字符串的空串符號,也就是 \0
這個字符。但是這個字符不會出現(xiàn)在我們的循環(huán)中,因為通過 strlen
這個函數(shù)獲取的字符串的長度中是不包含這個符號的。
在循環(huán)語句的內(nèi)部,我們只要簡單的執(zhí)行將每個元素執(zhí)行一次大寫轉(zhuǎn)換為小寫的函數(shù)操作就可以了。這個函數(shù)是 ctype.h
函數(shù)庫中的函數(shù),只會將大寫字母轉(zhuǎn)換為小寫字母,不會變換小寫字母以及符號。
這里我們需要利用一個臨時的字符變量來存儲變化后的變量,然后再賦值給當(dāng)前的字符數(shù)組。
2. 小結(jié)
在這里我們展示了一個簡單的字符串的練習(xí)。在 C 語言中對于字符串的處理除了之前介紹的可以使用字符串函數(shù)以外,更過的時候是利用其字符數(shù)組的特性,可以精確的通過索引訪問到每一個字符元素,然后再對其進(jìn)行處理。