[問題] 能宣告二維string嗎?

看板C_and_CPP (C/C++)作者 (龔龔)時間14年前 (2011/10/09 18:44), 編輯推噓0(0016)
留言16則, 6人參與, 最新討論串1/1
開發平台(Platform): C++ 問題(Question): string能像char一樣直接宣告二維陣列嗎?(ex: string data[40]; ) 因為我的程式碼放在DEV C的時候可以跑但是在visaul stdio的時候就不能執行 是因為string不能這樣宣告嗎?如果不行的話二維string應該要怎麼宣告呢? 我的code #include<iostream> #include<string> #include<fstream> using namespace std; int main() { string data[40]; cin>>data[30][0]; cout<<data[30][0]; return 0; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.182.204

10/09 18:46, , 1F
你是要幾個字串? 或是幾個字元?
10/09 18:46, 1F

10/09 18:54, , 2F
在visaul stdio的時候就不能執行←怎麼個不能執行法?
10/09 18:54, 2F

10/09 18:58, , 3F
Segmentation fault, 因為每一個string物件都未配置
10/09 18:58, 3F

10/09 19:00, , 4F
記憶體空間存放字元, 同樣的碼放在linux跑是直接當掉
10/09 19:00, 4F

10/09 19:58, , 5F
cin >> data[30]; //輸入字串
10/09 19:58, 5F

10/09 20:03, , 6F
string data[40][20]; //二維陣列字串 ( ̄ー ̄;)
10/09 20:03, 6F

10/09 21:23, , 7F
...事實上我是想寫成類似二維陣列,類似說data[1]='abc'
10/09 21:23, 7F

10/09 21:25, , 8F
(我不想宣告成二維字串陣列的形式)
10/09 21:25, 8F

10/09 21:40, , 9F
那你應該是把字串放到 data[30] 而不是 data[30][0]
10/09 21:40, 9F

10/09 21:42, , 10F
10/09 21:42, 10F

10/09 21:53, , 11F
我有把字串放進去data[30]過了但是有出錯,我想把字元放進
10/09 21:53, 11F

10/09 21:55, , 12F
去試試看,ex: data[30][0]=a 然後把它印出來
10/09 21:55, 12F

10/09 21:55, , 13F
data[1]='abc' 這囧... 是data[1]="abc"吧...
10/09 21:55, 13F

10/09 21:56, , 14F
你可以用char先寫一個版本,我們再看要怎麼用C++來改
10/09 21:56, 14F

10/09 21:56, , 15F
坦白說我看不懂你現在想做的是什麼....
10/09 21:56, 15F

10/09 21:57, , 16F
我總覺得他原string版本是有寫錯才會這樣...
10/09 21:57, 16F
文章代碼(AID): #1EaNiOyx (C_and_CPP)
文章代碼(AID): #1EaNiOyx (C_and_CPP)