回覆列表
-
1 # 無名xiao小姐
-
2 # 被囚禁的王者
#include <stdio.h>// 將字串s中的內容複製到d中,包括字串結束符"\0"char *strcpy(char *d, constchar *s){ char *p = d; while (1) { *p = *s; if (*p == "\0") break; p++; s++; } return p;}// 按ascii碼比較字串a和b的內容大小,a > b返回正整數,a < b返回負整數,a == b返回0int strcmp(constchar *a, constchar *b){ while(*a != "\0" && *a == *b) { a++; b++; } return (int)(*a - *b);}// 測試這兩個自定義函式int main(){ char s[20]; char *p = "abc"; char *q = "ab"; strcpy(s, p); printf("%s\n", s); printf("%d\n", strcmp(p, q)); return 0;}
strcpy函式 C語言標準庫函式strcpy,把從src地址開始且含有"\0"結束符的字串複製到以dest開始的地址空間。 典型實現: /********************** *C語言標準庫函式strcpy的一種典型的工業級的最簡實現 *返回值:目標串的地址。 *對於出現異常的情況ANSI-C99標準並未定義,故由實現者決定返回值,通常為NULL。 *引數:des為目標字串,source為原字串 */ char*strcpy(char*des,constchar*source) { char*r=des; while((*(des++)=*(source++))!="\0"); returnr; } /*while((*des++=*source++));的解釋:賦值表示式返回左運算元,所以在賦值NULL後,迴圈停止*/ 應用例項: 已知strcpy函式的原型是:char*strcpy(char*strDest,constchar*strSrc); ⒈strcpy的實現程式碼 char*strcpy(char*strDest,constchar*strSrc) { if((NULL==strDest)||(NULL==strSrc))//[1] throw"Invalidargument(s)";//[2] char*strDestCopy=strDest;//[3] while((*strDest++=*strSrc++)!="\0");//[4] returnstrDestCopy; }