09 11 12學習日記

2021-05-10 14:39:52 字數 1310 閱讀 8384

昨晚做了教材6-22題目,原題:編寫函式int index(char *s,char *t),返回字串t在字串s中出現的最左邊的位置,如果在s中沒有與t匹配的字串,就返回-1。自己做的**:

#include

#include

using namespace std;

int index(char *s,char *t)

if(i==len2)

}if(flag==1)

return j+1;

else return -1;}

int main()

;char a2=;

char a3="sdfg";

char a4[4]="abc";

char a5[4]=;

printf("%d,%d/n",sizeof(a1),strlen(a1));

printf("%d,%d/n",sizeof(a2),strlen(a2));

printf("%d,%d/n",sizeof(a3),strlen(a3));

printf("%d,%d/n",sizeof(a4),strlen(a4));

printf("%d,%d/n",sizeof(a5),strlen(a5));}

10,4

3,85,4

4,34,7

這是我執行出來的結果,有的地方不同電腦會不同,後面會提到

sizeof是計算位元組數,字元變數是1個位元組,所以有幾個字元變數就是幾個位元組

strlen是計算字串長度,不過字串末尾的/0是不會算進去的

我逐一說吧

對於a1,a1定義長度是10,所以佔位元組數也就是10,你初始化了4個元素,後六個就是0,也就是/0,因為/0的值就是0。所以a1作為乙個字串,實際是

"abcd/0/0/0/0/0/0",所以字串長度是4。

對於a2,你用的是不說明陣列長度並且用逐一元素初始化的初始化方法,這樣你初始化了幾個元素,這個陣列的長度就是多少。所以長度是3,但是a2的3個元素都被佔滿了,沒有/0,所以作為字串來講編譯器找不到結束符,就會出現一些亂七八糟的東西,你可以用puts(a2)來檢視一下就知道了。不同電腦結果會不一樣。

對於a3和a4,用字串來初始化字元陣列的時候,只要長度足夠或者預設長度,編譯器會自動加上乙個/0做結束符

a5和a2差不多,也是沒有/0導致的,同樣可以用puts(a5)來查詢

所謂字串a,就是從a的位址開始往後,到第乙個/0之間的內容

上面的解析還是比較詳細的。。

學習日記 3

今天很早同學就來叫我去自修了,休息了這麼多天,是應該開始勤奮了。不過去到教學樓真的有點後悔,那裡在施工,嘈還不說,連電都停了,但既然去到也就在那裡自修了。開了窗,偶爾有點風,但那只是偶爾,更多的時間是一點風都沒有,悶熱 擦掉桌面和椅上的一層灰塵,就開始看書了。今天看了很多,也很累,現在就回憶一下 看...

學習日記(4)

終於開始軟體設計了,昨天下午弄了一下午的圖象處理,終於有點成果了,用到的主要是vc 的mfc程式設計。下面總結一下 cfiledialog filedia false,null,null,null,t 自定義檔案型別 bmp bmp null 開啟檔案對話方塊函式 loadimage api函式,這...

學習日記 續

真慘,這麼久才第二次登陸!這幾天學習了pb,剛剛了解了easerver,嘗試進行多層開發.只是大體有了認識,具體實現還有很多問題。ea server作為乙個應用中間層,允許多種方式的客戶端連線。比如pb,jsp asp 實現方式 1。首先建立應用元件 ponent 應用的主要實現部分,實現資料庫的連...