字符串长度函数
#include <stdio.h>
size_t mystrlen(const char *str);
int main() {
size_t re1, re2, re3;
char str[] = "hello";
re1 = mystrlen(str);
re2 = mystrlen2(str);
re3 = mystrlen3(str);
return 0;
}
size_t mystrlen(const char *str) {
size_t cnt = 0;
while(*str++) {
cnt++;
}
return cnt;
}
size_t mystrlen2(const char *str) {
const char *ori = str;
while (*str++) {}
return str - ori -1;
}
size_t mystrlen3(const char *str) {
const char *ori = str;
while(*str) {str++;}
return str - ori;
}
字符串比较函数
/**
* @brief 比较两个字符串大小
* @param str1 第一个字符串
* @param str2 第二个 字符串
* @return int 返回两个字符串第一个不一样的字符的差值
*/
int mystrcmp(const char *str1, const char *str2) {
while (*str1 != '\0' && (*str1 == *str2)) {
s1++;
s2++;
}
return (int)*str1 - (int)*str2;
}
字符串复制函数
/**
* @brief 复制字符串到新的字符串数组
* @param dest 目标字符串位置
* @param src 源字符串
* @return 返回目标字符串位置
*/
char *strcpy(char *dest, char *src) {
char *temp = dest;
while ((*temp++ = *dest++) != '\0');
return dest;
}
字符串追加函数
/**
* @brief 字符串追加函数
* @param dest 目标追加位置
* @param src 源字符串
* @return 目标位置指针
*/
char *mystrcat(char *dest, const char *src) {
char *temp = dest;
while (*temp != '\0') {
temp++;
}
while ((*temp++ = *src++) != '\0') {}
return dest;
}
字符串查找函数
/**
* @brief 字符串查找函数
* @param src 要查找的字符串
* @param c 要查找的字符
* @return 返回字符所在的地址
*/
char *mystrchr(const char *src, int c) {
char target_char = (char)c;
while (*src != '\0') {
if (*src == c) {
return (char *)src;
}
src++;
}
if (target_char == '\0') {
return (char *)src;
}
return NULL;
}