c語言字符串,字符數(shù)組各種輸入輸出方法的區(qū)別

c語言沒有字符串(string)這種類型,但是可以用字符數(shù)組代替

輸入方法

如果知道字符數(shù)組的長度,我們可以用下面的方法輸入

char s[10];//長度為10的字符數(shù)組
for(int i=0;i<5;i++)//輸入五個字符
     scanf("%c",&s[i]);

在不知道長度的情況下,可以用下面的方法輸入

char s[100];//定義一個足夠長的字符數(shù)組
scanf("%s",s);//方法一,注意不需要用&,因為數(shù)組名s就是數(shù)組的首地址
gets(s);//方法二

方法一和二都可以接收一串字符,區(qū)別是,方法一遇到空格和回車就會停止,方法二遇到回車才會停止
舉個例子,如果你輸入abc abc然后回車,輸出的時候,方法一只會輸出abc,而方法二可以輸出完整的abc abc

輸出方法

如果知道長度,可以用for循環(huán)直接printf輸出每個字符
如果不知道,可以用下面的方法

char s[100];
gets(s);//輸入
printf("%s",s);//輸出方法一
puts(s);//輸出方法二

要注意的是,如果你是用for循環(huán)來輸入字符的,那么不可以用puts或者%s來輸出,否則會出現(xiàn)亂碼。(比如vc的燙燙燙)

char s[10];//長度為10的字符數(shù)組
for(int i=0;i<5;i++)//輸入五個字符
     scanf("%c",&s[i]);
puts(s);//輸出亂碼
printf("%s",s);//輸出亂碼

這是因為,如果你輸入用的是gets()或者scanf("%s",s),他會自動在字符的最后加上一個'\0',用puts或者%s輸出的時候,他會找到字符中的'\0',然后把'\0'前的字符全部輸出,而用for則不會給你加'\0'
如果我們把代碼改成下面這樣

char s[10];//長度為10的字符數(shù)組
for(int i=0;i<5;i++)//輸入五個字符
     scanf("%c",&s[i]);
s[i]='\0';//給最后加上\0
puts(s);//輸出正常
printf("%s",s);//輸出正常
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 在C語言中,五種基本數(shù)據(jù)類型存儲空間長度的排列順序是: A)char B)char=int<=float C)ch...
    夏天再來閱讀 4,061評論 0 2
  • 數(shù)組在程序設計中,為了處理方便, 把具有相同類型的若干變量按有序的形式組織起來。這些按序排列的同類數(shù)據(jù)元素的集合稱...
    朱森閱讀 4,272評論 2 13
  • C/C++輸入輸出流總結 前兩天寫C++實習作業(yè),突然發(fā)現(xiàn)I/O是那么的陌生,打了好長時間的文件都沒有打開,今天終...
    LuckTime閱讀 1,808評論 0 6
  • 參考資料:高教版《全國計算機等級考試二級教程——C語言程序設計》、《21天學通C語言》 用一維字符數(shù)組存放字符串 ...
    NoelleMu閱讀 824評論 0 1
  • 一、Python簡介和環(huán)境搭建以及pip的安裝 4課時實驗課主要內(nèi)容 【Python簡介】: Python 是一個...
    _小老虎_閱讀 6,340評論 0 10

友情鏈接更多精彩內(nèi)容