1.strcpy函式:用於字串的拷貝。
char* my_strcpy(char *dest, const char *src)
return start;
}
加入斷言增加函式的健壯性,對不需要修改的字串用const修飾,返回char*實現函式間的鏈式訪問。
注意末尾加『\0』。
2.strcat函式:用於將乙個字串補在另乙個字串後。
char* my_strcat(char *dest, const char *src)
while ((*dest++ = *src++))
return start;
}
3.memcpy函式: 用於記憶體拷貝,將一塊記憶體中的值拷貝到另一塊記憶體中,sz為拷貝的位元組數。
void* my_memcpy(void *dest, void *src, int sz)
return dest;
}
void*型別的指標可以接受任意型別的指標,實現函式的多用性,但void*型別的指標不能進行運算,若要計算需要進行強制型別轉換,函式返回型別為void*,所以用時也要進行強制型別轉換。
4.memmove函式:與memcpy作用相同,但這個函式考慮重疊問題,判斷進行從前向後拷貝或從後向前拷貝。
如:1,2,3,4,5,6,7;將2,3,4,5拷貝到4,5,6,7處得到1,2,3,2,3,4,5。而不會被覆蓋為1,2,3,2,3,2,3。
注意:有些編譯器將memmove和memcpy功能實現的相同,c語言標準並沒有對此做出嚴格規定。
void* my_memmove(void *dest, void *src, int sz)
} else }
return dest;
}
char* my_strstr(const char *dest, const char *src)
if (*src == '\0')
if (*dest == '\0')
start++;
}}
不呼叫庫函式,模擬實現幾個標準庫函式
原型宣告 char strcpy char dest,const char src 標頭檔案 include 和 include 功能 把從src位址開始且含有null結束符的字串複製到以dest開始的位址空間 說明 src和dest所指記憶體區域不可以重疊且dest必須有足夠的空間來容納src的字...
庫函式strstr的實現
函式strstr的原型是char strstr char str1,char str2 其功能是在str1中返回指定字串str2的第一次出現的位置。view plaincopy to clipboardprint?01.include 02.include 03.int main void 04.1...
庫函式atoi 的實現
int atoi const char nptr 假設第乙個非空格字元存在,是數字或者正負號則開始做型別轉換,之後檢測到非數字 包含結束符 0 字元時停止轉換。返回整形數。否則,返回零。這裡需注意 假設字串是非法輸入 字串為空,僅僅有乙個 或 非數字等返回的是整形數0 而假設輸入是 0 返回的也是整...