以多少個位元組為單位分配記憶體:
找結構體中佔位元組數最多的基本型別,以它的位元組數為單位為結構體開闢記憶體。
注意:當有double 型別成員的時候
vc中以八字節為單位開闢記憶體,double 型別的成員為8位元組對齊
gcc 以四位元組為單位開闢記憶體,並且double型別的成員為4位元組對齊
位元組對齊:
char型成員1位元組對齊,即隨便乙個位元組空間都可以存放char型資料
short型成員 2位元組對齊,即存放short型成員的記憶體編號必須是2的倍數
int 型成員 4位元組對齊,及存放int型成員的記憶體邊行必須是4的倍數
字串函式的實現:
/*原型宣告:char *strcpy(char* dest, const char *src);
說明:src和dest所指記憶體區域不可以重疊且dest必須有足夠的空間來容納src的字串。
返回指向dest的指標。
*/char * strcpy(char *dest,const char *src)
/*trcpy只是複製字串,但不限制複製的數量,很容易造成緩衝溢位。strncpy要安全一些*/
char * strncpy(char *dest,const char *src,size_t count)
/*將兩個char型別連線。
char d[20]="goldenglobal"; char *s="view"; strcat(d,s);
結果放在d中
printf("%s",d);
輸出 d 為 goldenglobalview (中間無空格)
d和s所指記憶體區域不可以重疊且d必須有足夠的空間來容納s的字串。
返回指向d的指標。
*/char *strcat(char *dest,const char *src)
/*功能
把src所指字串的前n個字元新增到dest所指字串的結尾處,並覆蓋dest所指字串結尾的'\0',從而實現字串的連線。
說明src和dest所指記憶體區域不可以重疊,並且dest必須有足夠的空間來容納src的字串。
返回值返回指向dest的指標*/
char * strncat(char *dest,const char *src,size_t count)}}
return tmp;
}/*當s1s2時,返回正數。
即:兩個字串自左向右逐個字元相比(按ascii值大小相比較),直到出現不同的字元或遇'\0'為止。
*/int strcmp(char *s1,char *s2)
if(*s1 != 0)
return 1;
else
return -1;
return 0;}/*
int strncmp ( const char * str1, const char * str2, size_t n );
str1, str2 為需要比較的兩個字串,n為要比較的字元的數目。
字串大小的比較是以ascii 碼表上的順序來決定,此順序亦為字元的值。strncmp()首先將s1 第乙個字元值減去s2 第乙個字元值,若差值為0 則再繼續比較下個字元,直到字元結束標誌'\0',若差值不為0,則將差值返回。例如字串"ac"和"ba"比較則會返回字元"a"(65)和'b'(98)的差值(-33)。注意:要比較的字元包括字串結束標誌'\0',而且一旦遇到'\0'就結束比較,無論n是多少,不再繼續比較後邊的字元。
*/int strncmp(char *s1, char *s2, int len)
else
}return 0;
}
字串 結構體 檔案
1 strcpy s1,s2 複製字串 s2 到字串 s1。2 strcat s1,s2 連線字串 s2 到字串 s1 的末尾。3 strlen s1 返回字串 s1 的長度。4 strcmp s1,s2 如果 s1 和 s2 是相同的,則返回 0 如果 s1s2 則返回大於 0。5 strchr ...
字串函式記錄
字串函式 include 1 字串中都以 0 來判斷字串結尾 2 字串函式中 形參 char 實參 char陣列或者字串常量 常用函式 1 字串拷貝 strcpy char a,char b 把b拷貝到a當中 若a不夠長則陣列越界 2 字串比較大小 int strcmp char s1,char s...
字串複習
package com.hanqi public class bird1 string str2 new string a system.out.println str2 str2 2.字串比較 運算,比較的是記憶體的位址是否相等,而new則是開闢了新的記憶體空間,所以字串不能用 判斷 system...