這是一個業餘愛好者提問。我搜索了關於這個主題的其他帖子,發現了很多結果,但我還沒有理解解決方案背後的概念。用指針反轉字符串
這是我C++書中的練習題。它沒有分配作業。 [說明] [1]。
WHAT我想這樣做:
string input;
getline(cin, input); //Get the user's input.
int front = 0;
int rear;
rear = input.size();
什麼問題要我做
string input;
getline(cin, input); //Get the user's input.
int* front = 0;
int* rear;
rear = input.size();
錯誤:類型的值「爲size_t」不能被分配給int類型的實體*
這對我來說很有意義,因爲您無法將int的「地址」分配給int值。 所以我的問題是:
- 什麼是正確的方法來解決這個問題?我應該忘記初始化前端還是後端?只是一起避免這一切?如果是這樣,該解決方案的語法是什麼?
- 這個問題爲什麼要我使用這樣的指針?很明顯,這是一個可怕的指針使用。沒有指針我可以在30秒內完成這個問題。這真的很令人沮喪。
- 我並沒有真正看到EVER的優勢,除了像使用指針返回數組那樣使用指針外。
謝謝你們。我知道你喜歡幫助那些幫助自己的用戶,所以我首先對此進行了一些研究。我現在對指針的概念非常惱火,而僅僅使用實際變量本身。
帖子有關此主題的,我已經預先讀:
- [實施例1] [2]
- [實施例2] [3]
[實施例3] [4]
[1]:http://i.imgur.com/wlufckg.png 「指令」 [2]:How does reversing a string with pointers works 「後1」 [3]:Reverse string with pointers? 「後2」 [4]:Reverse char string with pointers 「後3」
開始提示:如果要使用指針反轉字符串,最好不要使用STL字符串,而要使用字符數組。把你的字符串放在這樣一個數組中,然後開始交換字符,第一次交換最後一次等等。所以你有兩個指針,一個從字符串的開始到結尾運行,另一個向後運行。指針是C++的核心。它們使您能夠構建非常有效的低脂肪數據結構,如樹木和網絡。 –
本書討論C字符串,前面和讀取應該是'char *'。 – kiwixz