題目:
write code to reverse a c-style string. (c-string means that 「abcd」 is represented as five characters, including the null character.)
寫**翻轉乙個c風格的字串。(c風格的意思是」abcd」需要用5個字元來表示,包含末尾的 結束字元)
解答:這道題如果就是要考察你有沒有注意到c風格字串最後的那個結束符,那我覺得還是像書 上寫的那樣,在**中有所體現。**如下:
博主表示對這個第一種方法有點懵逼,有懂的大神麻煩教導一下,o(∩_∩)o謝謝。指標方面,我基本上沒怎麼學~~~
void swap(char &a, char &b)
void reverse1(char *s)
否則的話,可以直接獲取字串的長度,然後從兩頭開始一一交換相應的字元。**如下:
void swap(char &a, char &b)
void reverse2(char *s)
完整**如下:
#include
#include
using
namespace
std;
void swap(char &a, char &b)
void reverse2(char *s)
void reverse1(char *s)
int main()
我對第一種方法的理解:
#include
#include
#include
using
namespace
std;
void swap(char &a, char &b)
void reverse2(char *s)
void reverse1(char *s)
--q;
printf("*%d*\n",q);//此時的q為結束符之前的乙個字元
//此時q指向結束,p是指向開頭
while(p < q)//一直交換,直到中間位置
詳細解釋下c風格字串:
c風格的字串是用陣列存放的,一般要以』\0』結束
而c++主要以string類代替,更加高效,且不易出錯
例如:string str = 「123」;就是c++的風格;
char str[4]=」123」;就是c風格
string是c++中的關鍵字,和int,float等等一樣, 在c++中,string 定義的變數可以直接儲存字串。在c語言中是沒有這種直接儲存字串的變數的。
[ ]裡面是4,是因為,c風格的字串,在最後都會預設新增』\0』,所以」123」本質上是1 2 3 『\0』
它其實是佔四個位元組。所以如果你只定義3個儲存空間的話,那』\0』這個字串終止標誌就回被丟棄,那麼以後的應用就回出現問題。舉個例子:你用strlen(str)試試檢視長度為3時的這個字串的長度,很可能就會有問題。 『\0』 是c字串都存在的。
經典C 面試題目
1 在c 中,string str null 與 string str 請盡量使用文字或圖象說明其中的區別。回答要點 說明詳細的空間分配。10分 答 string str null 是不給他分配記憶體空間,而string str 給它分配長度為空字串的記憶體空間.請詳述在dotnet中類 class...
關於乙個面試題目
曾經碰到乙個面試題目,誰能給出標準答案呢?200個小孩圍乙個圈,從頭開始1到4報數,報到4這個數的退出圓圈,最後乙個留在圈裡的小孩編號是多少?在網上看到很多人給出的答案是 標準答案.public static void main string args while list.size 4 syste...
記錄乙個面試題目
掘金 上看到的乙個筆試題目,記錄並分析總結以下考察點。function foo return this foo.getname function foo.prototype.getname function var getname function function getname 判斷輸出結果 f...