[問題] 陣列輸入東西後 剩下空的想要變成空白

看板C_and_CPP作者 (將孤獨放進那小盒子)時間12年前 (2011/10/23 23:09), 編輯推噓0(0025)
留言25則, 7人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) C++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 如何將數值輸入後將後面的東西變成空白 EX:a[10] 輸入:kkaaee 要將a[6]~a[8]變成空白 錯誤結果(Wrong Output): 儲存的東西會變成亂碼 程式碼(Code):(請善用置底文網頁, 記得排版) #include<iostream> #include<string.h> using namespace std; int main(){ char password[10]; //宣告陣列password cout<<"set your password\n"; //顯示設定密碼 cin.getline(password,10); //設定密碼 cout<<"password is "<<password<<endl; //顯示儲存的密碼 for(i=strlen(password) ; i<=9 ; i++){ password[i]=' '; } cout<<password<<"\n"; return 0; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.18.30.53

10/23 23:17, , 1F
where is your string end character...
10/23 23:17, 1F

10/23 23:25, , 2F
這怎麼跟我朋友給我的題目一樣?
10/23 23:25, 2F

10/23 23:30, , 3F
請問F大的意思是?
10/23 23:30, 3F

10/23 23:31, , 4F
H大 這只是巧合吧 只是剛好都是要做密碼的程式吧@@
10/23 23:31, 4F

10/23 23:34, , 5F
f 大意思是,你把後面設成空白後,卻忘了設 結束字元。
10/23 23:34, 5F

10/23 23:37, , 6F
你需要把[9]設定為'\0'
10/23 23:37, 6F

10/23 23:52, , 7F
這邊貼錯了 我後來有改成8做測試還是亂碼 不好意思
10/23 23:52, 7F

10/23 23:54, , 8F
你有仔細看上面推文嗎 ?
10/23 23:54, 8F

10/24 00:00, , 9F
[9] 不設定不會變成\0嗎
10/24 00:00, 9F

10/24 00:07, , 10F
感謝大大的教導 我觀念又更好了 不好意思 麻煩你
10/24 00:07, 10F

10/24 00:12, , 11F
'\0'是要自己加上去的,compiler不會知道你什麼時候
10/24 00:12, 11F

10/24 00:12, , 12F
要加上
10/24 00:12, 12F

10/24 00:13, , 13F
你都用c++了,建議用string,會比用char[]好用很多
10/24 00:13, 13F

10/24 00:22, , 14F
用字串存陣列跟字元存陣列有甚麼差別呢?
10/24 00:22, 14F

10/24 00:24, , 15F
It has a lot difference between them.
10/24 00:24, 15F

10/24 00:28, , 16F
string is composed of characters.
10/24 00:28, 16F

10/24 00:50, , 17F
很好奇你為什麼想要補空白?印出來整齊嗎?
10/24 00:50, 17F

10/24 00:51, , 18F
其實我也挺好奇的xdd
10/24 00:51, 18F

10/24 00:53, , 19F
I don't know why ,especially he want insert space in
10/24 00:53, 19F

10/24 00:53, , 20F
the back....
10/24 00:53, 20F

10/24 01:19, , 21F
可能是想模擬 printf("%-9s", str); 這種東西吧。
10/24 01:19, 21F

10/24 01:21, , 22F
一開始就把str initialize成9個空白+一個\0 然後輸入之
10/24 01:21, 22F

10/24 01:22, , 23F
後再把str[strlen(str)]設成' '或許也可以? XD
10/24 01:22, 23F

10/24 01:53, , 24F
10/24 01:53, 24F

10/24 02:10, , 25F
getline 長度少一個+1 ^^"
10/24 02:10, 25F
文章代碼(AID): #1Ef2uYQ3 (C_and_CPP)