在C語(yǔ)言中,字符串是一系列以空字符(‘\0’) 結(jié)尾的字符數(shù)組。要輸入和輸出字符串,可以使用 C 標(biāo)準(zhǔn)庫(kù)中提供的一些函數(shù)。
字符串輸入
C語(yǔ)言提供了多種函數(shù)來(lái)從控制臺(tái)等輸入設(shè)備中讀取輸入的字符串,其中最常用的是 scanf() 和 fgets() 函數(shù)。
使用 scanf() 函數(shù)輸入字符串
scanf() 函數(shù)可以用于讀取格式化的輸入,包括字符串。要輸入一個(gè)字符串,需要使用 %s 格式標(biāo)志。以下示例演示了如何使用 scanf() 函數(shù)輸入字符串:
#include <stdio.h>
int main() {
char name[20];
printf("Enter your name: ");
scanf("%s", name);
printf("Hello, %s!\n", name);
return 0;
}
在這個(gè)示例中,我們首先使用 char 類型的數(shù)組 name 來(lái)存儲(chǔ)輸入的字符串,然后使用 scanf() 函數(shù)讀取輸入并將其存儲(chǔ)在該數(shù)組中。 %s 格式標(biāo)志告訴 scanf() 函數(shù)讀取一個(gè)字符串,它會(huì)自動(dòng)跳過(guò)輸入中的空格和換行符。
使用 fgets() 函數(shù)輸入字符串
fgets() 函數(shù)可以用于從 stdin 中讀取一個(gè)字符串,包括空格和換行符,以及指定要讀取的字符串的最大長(zhǎng)度。以下示例演示了如何使用 fgets() 函數(shù)輸入字符串:
#include <stdio.h>
int main() {
char name[20];
printf("Enter your name: ");
fgets(name, 20, stdin);
printf("Hello, %s!\n", name);
return 0;
}
在這個(gè)示例中,我們將要讀取的字符串的最大長(zhǎng)度設(shè)置為 20 個(gè)字符,并使用 fgets() 函數(shù)從輸入中讀取它。第一個(gè)參數(shù) name 是用來(lái)存儲(chǔ)輸入字符串的緩沖區(qū),第二個(gè)參數(shù) 20 是指緩沖區(qū)的最大大小,第三個(gè)參數(shù) stdin 是要讀取的輸入設(shè)備。
字符串輸出
字符串的輸出在C語(yǔ)言中比輸入簡(jiǎn)單,可以使用 C 標(biāo)準(zhǔn)庫(kù)中的 printf() 函數(shù)。
使用 printf() 函數(shù)輸出字符串
要輸出字符串,只需使用 %s 格式標(biāo)志,后跟要輸出的字符串。以下示例演示了如何使用 printf() 函數(shù)輸出字符串:
#include <stdio.h>
int main() {
char name[] = "ChatGPT";
printf("Hello, %s!\n", name);
return 0;
}
在這個(gè)示例中,我們創(chuàng)建了一個(gè)字符串常量,將其存儲(chǔ)在 char 類型的數(shù)組 name 中,然后使用 printf() 函數(shù)輸出該字符串。 %s 格式標(biāo)志告訴 printf() 函數(shù)輸出一個(gè)字符串。