#include#includeusing namespace std;
/** 字串相關函式
*/char *mystrcpy(char *dest, const char *src)
char *mystrncpy(char *dest, const char*src, size_t count)
return ret;
}char *mystrcat(char *dest, const char *src)
while( (*dest++ = *src++) != '\0' )
/*nothing*/;
return ret;
}char *mystrncat(char *dest, const char *src, size_t count)
while( (*dest++ = *src++) != '\0')
}} return ret;
}int mystrcmp(const char *str1, const char *str2)
return c1>c2 ? 1:-1;
} return count;
}int mystrncmp(const char *str1, const char *str2, size_t num)
return c1>c2 ? 1:-1;
} return count;
}size_t mystrlen(const char *str)
//思路將所有型別都轉化為char* 然後再依次進行拷貝
void *mymemset(void *dest, int val, size_t count)
return dest;
}//不能解決自身拷貝重疊時的問題
void *mymemcpy(void *dest, const void *src, size_t count)
return dest;
}//memcpy的增強版 解決了拷貝自身重疊的問題
void* mymemmove(void *dest, const void *src, size_t count)
else }
return dest;
}//測試用例
int main(void)
; /*mystrcpy(dest, src);
cout*mystrncpy(dest, src, -1);
cout*mystrcat(dest, src);
cout*mystrncat(dest, src, 3);
cout/cout/cout/cout*mymemset(src, 0, sizeof(src));
cout*mymemcpy(dest, src, sizeof(src));
cout*mymemcpy(src+2, src, sizeof(src)-3);
cout*mymemmove(src+2, src, sizeof(src)-3);
cout
}
程式設計實現字串相關函式
在c語言中,字串是以 0 結尾的,這一原因也導致了字串相關操作比較繁瑣,比如字串拼接,只能通過呼叫函式來得以實現,沒有整型相關計算便捷。但是為了更好的理解這些字串函式的本質,我們可以自己編寫一些程式,讓自己能夠更透徹的理解字串相關操作。畢竟有些事情,如果我們改變不了,嘗試著去適應也是一種積極的生活態...
字串相關函式
strcmp 比較字串 strcmpi 忽略大小寫比較字串 upper 轉換為大寫 blanks 產生空字串 strmatch 查詢匹配的字串 strjust 對齊字元陣列,包括左對齊,右對齊和居中 strrep 替換字串 strncmp 比較字串的前n個字元 lower 轉換為小寫 deblank...
字串相關函式
1.模擬實現strcpystrcpy str1,str2 函式是把從str2位址開始且含有null結束符的字串複製到以str1開始的位址空間中,而且str2和str1所指記憶體區域不可以重疊。這就要求str1必須有足夠的空間來容納str2的字串。模擬實現strcpy 0 也會被拷貝進去,返回值為ch...