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