2022年7月4日 星期一

如何於C程式內輸入字串?


之前我們學過如何於C程式內輸入數目字,但如要輸入字串,例如姓名,又要如何處理呢?

 

跟其他大部分電腦程言不一樣,C並沒有一個字串的變數數據類型(variable data type)C是使用字元(character)及變數陣列(array)方式處理的。

 

參考以下程式:

說明:

說明

4

宣告一個叫s的陣列變數,長度是10個字元,資料型態是字元(char)。留意,亦祇能是charC程式並沒有string(字串)的資料型態的。字元(char)是一個字符而已,因此要用陣列方式貯存。

5

輸出 enter your name:

6

讓使用者輸入字串,貯存於s這個變數內。留意,格式是”%s”,是字串。

 

那如何輸出已輸入的字串? 參考以下程式:

說明:

其實同樣使用printf()指令便可以,但留意,輸出的格式要”%s”,即字串(s string(字串)的簡稱))

 

單純輸入輸出字串,祇是最簡單的功能。透過不同的字串處理函數,便可以對字串進行不同的處理,例如以下:

1.      取代整個字串(其實即是複製)

2.      取代字串中個別的字符

3.      搜尋字串的字符

4.      計算字符或字的數目

5.      …..

 

同學有否發現,以上的功能,不就是文書處理中最常用的功能嗎?

 

其實同學可以透過曾學習的指令,操作以上字串的處理的,但由於字串處理屬常用的功能,已有人撰寫了不同的字串函數了,使用C程式時,先載入以下標頭檔便可使用:

#include <string.h>

以上標頭檔內,其中一個字串函數便是strcpy(),是用來取代字串用的。

語法如下:

strcpy(變數1,變數2(或字串));

例如: strcpy(s1,s2)

指令碼

說明

strcpy(s1,”peter”);

peter這字串(留意,必須用” “括起來)取代 s1的值。

strcpy(s1,s2);

s2的字串值取代s1的字串值。

 

 

----------------------------------------------------------------------------------------------------------------

[進階學習]

 

以上曾說過,C實際上是用字元(c)及陣列方式貯存字串的,那輸出時是否可以用字元格式(“%c”)?

參考以下程式:

由於字元(c)是單一個字元,因此不可能輸出整個字串的! 要使用字元格式輸出,便要自行把變數陣列內每一個字符都順序輸出便可以。如下:

留意,輸出的不祇是peter,而是多了5個字符,空格也是字符來的。因為開始時s的陣列變數用了10個字符位置(s[10]),所以輸出時亦會把空格也輸出了。

那有沒有辦法祇輸出真正的字母,而不輸出空格?

當然可以,你可以自行撰寫一段程式碼或使用他人已製作的函數便可以。其實C程式內已有人撰寫了,你使用”%s”便可以啦。

 

那以上使用迴圈這麼煩複輸出有甚麼用途呢?

 

如果要進行取代字母、搜尋字母等動作,便需要用到以上方式了! 不過,這些常用函數,已有人撰寫了。

沒有留言:

張貼留言

如何於C程式內輸入字串?

之前我們學過如何於 C 程式內輸入數目字,但如要輸入字串,例如姓名,又要如何處理呢 ?   跟其他大部分電腦程言不一樣, C 並沒有一個字串的變數數據類型 (variable data type) , C 是使用字元 (character) 及變數陣列 (array)...