誰能給我解釋一下這段程式

2022-05-14 18:55:53 字數 1105 閱讀 1391

1樓:o御風而行

意思就是在字串的後面加上一個'\0'啊,表示這個字串結束了,因為strlen,strcpy等函式是以'\0'來判斷字串的結束的,如果不加,呼叫這些函式的時候就可能會出錯。

請你仔細看看,當strchr找到第一個'.'號的時候,我們寫了一句*p=0,就是把那個'.'號變成了'\0',然後我們用了strcpy(tp[i], q),這是,我們複製到tp[i]裡的是剛才找到的那個'.

'號之前的部分,為什麼strcpy會知道只複製到這裡呢?因為我們用'\0'替換了原來的'.'號,當strcpy複製到'\0'的時候,它就以為這個字串結束了(實際上沒有結束)。

後面我們用了q=++p,讓q指向了第一個'.'號後的那個字元,也就是把前面已經複製好了的那部分給去掉了。

希望你仔細分析**。

2樓:伊·梵

樓主態度很成問題!!!

原型:extern char *strchr(char *s,char c);

用法:#include

功能:查詢字串s中首次出現字元c的位置

strchr()只是定位,並不會擷取任何內容。

加*p=0;的目的就是為了下面這句

strcpy( tp[i] , q ); /* 樓主再回憶一下字串,什麼是字串? */

第一次,

q := "192.168.1.1\0";

p=strchr(q, '.');*p=0;

這時 q := "192\0""168.1.1\0"

strcpy( tp[i] , q ); 這時就只複製"192",因為192後面有\0(字串結束符)

q = ++p;

q := "168.1.1"

...將'.'替換為'\0',複製的時候才只複製'.'之前的部分

如果不替換,就會完全複製,結果樓主自己也知道

加上*p=0;結果是 192 168 1

不加*p=0;結果是 192.168.1.1 168.1.1 1.1

3樓:高金山

*p=0 是字串結束的意思

這麼寫就是把p指向的地址裡面的內容賦值為0啊

'\0'的ascii碼的值是0

誰能給我解釋一下這道電路題

暈,你對電阻的引數有一個誤解。電阻的引數除了阻值外,還有一個引數,表徵它能夠通過的最大電流。通常是用功率表示的,中文叫做額定功率,英文叫做power rating。這道題是問你這三個電阻的額定功率最小可以是多少 再小就會被燒掉 i 48 3 470 p iir,這個就是每個電阻的實際耗散功率,pow...

誰能給我解釋一下是什麼意思

連昌宮,唐代皇帝行宮之一,公元658年 高宗顯慶三年 建,故址在河南府壽安縣 今河南宜陽 西九里。公元818年 元和十三年 元稹在通州 州治在今四川達縣 任司馬,寫下這首著名的長篇敘事詩,通過連昌宮的興亡變遷,探索安史之亂前後唐代朝政治亂的緣由。全詩基本上可分為兩大段。第一段從 連昌宮中滿宮竹 至 ...

誰能給我詳細解釋一下「仁者愛人」含義

仁者是充滿慈愛之心,滿懷愛意的人 仁者是具有大智慧,人格魅力,善良的人。出自戰國孟子的 孟子 離婁下 一 原文 孟子曰 君子所以異於人者,以其存心也。君子以仁存心,以禮存心。仁者愛人,有禮者敬人。愛人者,人恆愛之 敬人者,人恆敬之。二 譯文 孟子說 君子之所以不同於普通人,就是因為存的心思不一樣。君...