在C語言中,可以使用scanf
函數或gets
函數來讀取字符串。
scanf
函數讀取字符串:char str[100];
scanf("%s", str);
但是這種方法有一個問題,就是只能讀取空白符之前的字符串,如果輸入字符串含有空格,則只能讀取空格之前的部分。
gets
函數讀取字符串:char str[100];
gets(str);
這種方法可以讀取含有空格的字符串,但是gets
函數存在安全問題,因為它無法判斷輸入字符串的長度,并且沒有提供緩沖區溢出的保護。
為了避免gets
函數的安全問題,建議使用fgets
函數來代替,fgets
函數可以指定讀取的最大字符數:
char str[100];
fgets(str, sizeof(str), stdin);
這樣可以避免緩沖區溢出的問題,同時也能讀取含有空格的字符串。