亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

探討數組與字符串輸入的問題(C++版)

2020-05-23 14:16:48
字體:
來源:轉載
供稿:網友

本文對C++數組與字符串輸入的問題進行了探討,需要的朋友可以參考下

對于字符串問題,原來理解的不夠深刻,現在討論一些關于字符串輸入的問題

探討數組與字符串輸入的問題(C++版)

1.strlen() 返回的是數組中的字符串的長度,而不是數組本身的長度。

2.strlen()只計算可見的字符,而不把空字符計算在內。

那么更有意思的在后面:

 

 
  1. char name[16] = "abcdefg"
  2. //輸出結果是多少? 
  3. cout << name << endl; 
  4. name[3] = '/0'
  5. //輸出結果又是多少? 
  6. cout << name << endl;  

大家猜猜 ?

 

 
  1. # include <iostream> 
  2. # include <cstring> 
  3. # define SIZE 15 
  4. using namespace std; 
  5. int main(void
  6. char name_cin[SIZE]; 
  7. char name[SIZE] = "C++owboy"//initialized array 
  8. cout << "Hello I'm " << name; 
  9. cout << "! What is your name ? "
  10. cin >> name_cin; 
  11. cout << "Well " << name_cin << ", your name has "
  12. cout << strlen(name_cin) << " letters and is stored " << endl; 
  13. cout << "in an array of " << sizeof(name_cin) << "bytes." << endl; 
  14. cout << "your initial is " << name_cin[0] << "." << endl; 
  15. name[3] = '/0'
  16. cout << "Here are the first 3 characters of my name : "
  17. cout << name << endl; 
  18. return 0; 

大家猜猜結果呢?

探討數組與字符串輸入的問題(C++版)

name字符串被截斷了...

釋義:

數組可以用索引來訪問數組的各個字符,例如name[0]找到數組的第一個字符,name[3] = '/0'; 設置為空字符,使得這個字符串在第三個字符后面即結束,即使數組中還有其他字符。

探討數組與字符串輸入的問題(C++版)

不過cin有個缺陷,就是以空白符為結束標志,如果遇到空格和回車就把這個字符串輸入完了,這樣就需要用能輸入一行字符串的方法來解決,但是先看看這個問題:

 

 
  1. # include <iostream> 
  2. using namespace std; 
  3. int main(void
  4. const int ArSize = 20; 
  5. char name[ArSize]; 
  6. char dessert[ArSize]; 
  7. cout << "Enter your name : " << endl; 
  8. cin >> name; //輸入名字 
  9. cout << "Enter your favorite dessert: " << endl; 
  10. cin >> dessert; //輸入甜點的名字 
  11. cout << "I have some delicious " << dessert; 
  12. cout << " for you, " << name << "." << endl; 
  13. return 0; 

探討數組與字符串輸入的問題(C++版)

釋義:

cin使用空白(空格、制表符、換行符)來定字符串的邊界,cin在獲取字符數組輸入時只讀取第一個單詞,讀取單詞后,cin將該字符串放到數組中,并自動在結尾添加空字符'/0'

cin把Meng作為第一個字符串,并放到數組中,把Liang放到輸入隊列中第二次輸入時,發現輸入隊列Liang,因為cin讀取Liang,并將它放到dessert數組中

這時如果能輸入一行數據,這個問題不就解決了嗎?

getline()、get()可以實現...

 

 
  1. # include <iostream> 
  2. using namespace std; 
  3. int main(void
  4. const int ArSize = 20; 
  5. char name[ArSize]; 
  6. char dessert[ArSize]; 
  7. cout << "Enter you name : " << endl; 
  8. cin.getline(name,ArSize); 
  9. cout << "Enter you favorite dessert : " << endl; 
  10. cin.getline(dessert,ArSize); 
  11. cout << "I have some delicious " << dessert; 
  12. cout << " for you," << name << endl; 
  13. return 0; 

探討數組與字符串輸入的問題(C++版)

釋義:

cin是將一個單詞作為輸入,而有些時候我們需要將一行作為輸入,如 I love C++

iostream中類提供了一些面向行的類成員函數,如getline()和get(),這兩個都是讀取一行的輸入,直到換行符結束,區別是getline()將丟棄換行符

get()將換行符保留在輸入序列中

面向行的輸入:getline(char* cha,int num)

getline()讀取整行,通過換行符來確定結尾,調用可以使用 cin.getline(char* cha,int num),成員函數的方式使用,第一個參數是用來存儲輸入行的數組的名稱,第二個參數是要讀取的字符數,如果這個字符數的參數為30,則最多讀入29個字符,余下的用于存儲自動在結尾處添加的空字符。

get()存儲字符串的時候,用空字符結尾。

如果遇到這種情況咋辦?

 

 
  1. # include <iostream> 
  2. using namespace std; 
  3. int main(void
  4. cout << "What year was your house built? " << endl; 
  5. int year; 
  6. cin >> year; 
  7. //char ch; 
  8. //cin.get(ch); 接收換行符 (cin >> year).get(); 
  9. cout << "What is its street address ? " << endl; 
  10. char address[80]; 
  11. cin.getline(address, 80); 
  12. cout << "Year built : " << year << endl; 
  13. cout << "Address : " << address << endl; 
  14. cout << "Done ! " << endl; 
  15. return 0; 

探討數組與字符串輸入的問題(C++版)

地址還沒有輸入,就結束了...

去掉上面的注意,加一個字符,接收換行符就可以了...

注:C++程序常使用指針而不是數組來處理字符串

以上就是本文的全部內容,希望對大家的學習有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品久久久久久久久久东京| 色综合天天狠天天透天天伊人| 精品色蜜蜜精品视频在线观看| 日韩一区二区欧美| 午夜精品一区二区三区在线播放| 精品久久香蕉国产线看观看gif| 国产精品1区2区在线观看| 亚洲社区在线观看| 国产精品黄色av| 亚洲精品美女久久久| 欧美亚洲视频在线观看| 亚洲一区二区中文| 欧美精品一区二区三区国产精品| 国产激情视频一区| 亚洲一级黄色片| 亚洲精品中文字幕有码专区| 欧美裸身视频免费观看| 亚洲美女视频网站| 日韩av在线高清| 日产日韩在线亚洲欧美| 欧美最顶级丰满的aⅴ艳星| 成人免费在线视频网站| 日韩在线视频观看正片免费网站| 亚洲国内高清视频| 欧美成人一二三| 91情侣偷在线精品国产| 91精品视频专区| 狠狠操狠狠色综合网| 久久久精品久久久久| 琪琪第一精品导航| 国产精品美女呻吟| 亚洲成年网站在线观看| 亚洲成人激情视频| 亚洲视频视频在线| 亚洲黄色片网站| 欧美视频一区二区三区…| 亚洲人成欧美中文字幕| 欧美丰满少妇xxxxx| 亚洲美女福利视频网站| 国产精品h片在线播放| 高清日韩电视剧大全免费播放在线观看| 色多多国产成人永久免费网站| 日韩综合中文字幕| 国产精品视频免费观看www| 亚洲欧美日韩在线高清直播| 国产成人在线视频| 日韩欧美国产骚| 亚洲va欧美va国产综合剧情| 亚洲香蕉av在线一区二区三区| www.xxxx欧美| 成人黄色免费在线观看| 日韩美女在线播放| 日本精品视频在线观看| 亚洲欧美在线看| 欧美日韩国产在线看| 曰本色欧美视频在线| 精品国模在线视频| 国产精品va在线播放我和闺蜜| 亚洲人成欧美中文字幕| 亚洲三级av在线| 91国产美女在线观看| 日韩欧美高清在线视频| 国产日韩欧美在线| 日本最新高清不卡中文字幕| 国产成人精品久久亚洲高清不卡| 亚洲女人被黑人巨大进入| 国产精品午夜国产小视频| 久久精品男人天堂| 亚洲精品成a人在线观看| 成人精品aaaa网站| 亚洲电影免费观看高清| 91福利视频在线观看| 亚洲色图日韩av| 欧美日韩亚洲天堂| 久久免费视频这里只有精品| 欧美成人免费播放| 国产一区二区免费| 欧美专区第一页| 中文字幕日韩视频| 久久久久久久久久亚洲| 欧美精品一本久久男人的天堂| 亚洲天堂视频在线观看| 97国产在线视频| 欧美激情区在线播放| 国产精品美女免费看| 26uuu日韩精品一区二区| 欧美激情一级欧美精品| 91在线观看免费| 欧美xxxx做受欧美| 97在线观看免费高清| 欧美性猛交xxxx乱大交| 成人免费视频在线观看超级碰| 欧美精品在线视频观看| 亚洲色图35p| 国产精品久久电影观看| 大伊人狠狠躁夜夜躁av一区| 4p变态网欧美系列| 欧美精品午夜视频| 成人精品一区二区三区电影免费| 国产成人精品日本亚洲| 欧美日韩亚洲91| 午夜精品久久久久久99热| 亚洲日本中文字幕免费在线不卡| 亚洲在线第一页| 日本不卡视频在线播放| 日韩最新中文字幕电影免费看| 亚洲欧美日韩一区二区在线| 成人精品视频久久久久| 一区二区三区视频免费在线观看| 中文字幕亚洲无线码在线一区| 欧美丰满少妇xxxxx| 久久久久久高潮国产精品视| 热久久99这里有精品| 国产视频精品免费播放| 欧美亚洲视频在线看网址| 国产精品成人av性教育| 日本国产精品视频| 日韩一中文字幕| 在线观看亚洲视频| 欧美肥老太性生活视频| 亚洲国产三级网| 亚洲国产天堂久久综合网| 狠狠综合久久av一区二区小说| 欧美成人性生活| 久久久在线视频| 亚洲第一区中文99精品| 亚洲欧美国产高清va在线播| 国产日韩专区在线| 91精品免费看| 久久久av网站| 国产精品一二三在线| 国产成+人+综合+亚洲欧美丁香花| 亚洲人免费视频| 久久国产视频网站| 九九热视频这里只有精品| 久久精视频免费在线久久完整在线看| 亚洲欧洲日韩国产| 久久精品视频导航| 日韩电影第一页| 国产精品久久久久久久久久东京| 成人国产在线激情| 久久福利网址导航| 日韩精品一二三四区| 亚洲激情在线观看| 欧美成人久久久| 国产精品爽爽爽爽爽爽在线观看| 亚洲人成五月天| 粗暴蹂躏中文一区二区三区| 最新中文字幕亚洲| 国产精品一区二区三区久久| 黄色成人在线免费| 日韩成人在线观看| 国产香蕉97碰碰久久人人| 久久免费少妇高潮久久精品99| 亚洲精品视频免费在线观看| 久久久免费电影| 色综合久久久久久中文网| 欧美精品九九久久| 91精品视频免费看| 欧美亚洲国产成人精品| 久久成人在线视频| 一区二区三区四区视频| 不卡av在线网站| 欧美性黄网官网|