為什麼這篇c輸入字串長度鄉民發文收入到精華區:因為在c輸入字串長度這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者fatb (胖逼=口=)看板C_and_CPP標題[問題] 輸入字串長度任意時間Wed Sep ...
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
vc2010
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
程式要我輸入一個字串 可以是ABC 也可以是ABCDE
而我定義字串為char stringX[100];
不過這種宣告方式等於把輸入字串的長度寫死
我想請問的是程式該如何撰寫
才能讓使用者任意地輸入任何長度的字串而不受限制
餵入的資料(Input):
預期的正確結果(Expected Output):
錯誤結果(Wrong Output):
程式碼(Code):(請善用置底文網頁, 記得排版)
char stringX[100];
printf("請輸入stringX值:");
scanf("%s",stringX);
我的宣告方式是如此
程式中抓取字串資料的方式則是使用
cout << stringX[?];
補充說明(Supplement):
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.252.76.9
C++
後來發現我的真正問題是
使用者隨意輸入一個字串 然後將該字串放入陣列裡 陣列空間不浪費
string s; //給予使用者輸入字串用
char* stringX; //將字串放入陣列
printf("請輸入stringX值:");
cin >> s;
stringX = new char[s.length()]; //配置s.length() bytes 記憶體
for(int i = 1; i<=s.length();i++){
stringX[i-1] = s.substr(i-1,1); <-這行error
}
我的想法是在for迴圈裡面將s一個個塞入stringX裡面
但是編譯器告訴我char*和string不可互換= =
請問有解嗎?
※ 編輯: fatb 來自: 111.252.76.9 (09/28 03:59)
※ 編輯: fatb 來自: 111.252.76.9 (09/28 04:00)
痾 想不到 strcpy(stringX, s.c_str()); 就解決了
連for迴圈都不用了
問題應該順利解決了 謝謝大家
※ 編輯: fatb 來自: 111.252.76.9 (09/28 04:14)
看了樓樓上的回應跑去試了一下
原來程式碼可以修改成
使用s[?]來取代stringX[?]
我還多宣告一個矩陣真是脫褲子放屁@.@
※ 編輯: fatb 來自: 111.252.76.9 (09/28 15:54)