簡體   English   中英

有沒有辦法在不知道它的大小的情況下制作一個char數組

[英]Is there any way to make a char array without knowing what size it will be

char* a = new char[50];

這是為了學校作業。 我不允許使用字符串或向量或其他任何東西。 只是char數組。

可以說我想做cin >> a; 我不知道輸入的大小。 我該怎么把它放在char數組中? 以上僅適用於小尺寸輸入。

我應該這樣做嗎? char* a = new char[some_large_number]; 或者,還有更好的方法?

我只能使用(動態)char數組。

編輯:輸入可以是任何字符串,如abcd甚至somelongrandomsentecewithoutspsomelongrandomsentecewithoutspacessomelongrandomsentecewithoutspaces

這對於字符數組來說有點棘手:您需要做的是告訴cin您不希望接收超過一定數量的字符(50個字符緩沖區為49,因為您需要空終止符)。 讀取完成后,檢查字符串的長度。 如果是49,則分配一個新的更大的字符串,將舊字符串復制到其中,然后繼續閱讀。 如果小於49,則已到達字符串的結尾。

您可以使用istream::get將數據讀入緩沖區:

cin.get(a, 50); // You can specify an optional delimiter as a third parameter

請注意,您為長度傳遞50,並且get將自動減1,因為它知道null終止符所需的空間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM