(1)
int my_strlen(const char *p)//計數器的方式 return count; }
(2)my_strlen(const char *str) //指標的方式
return str - start;
//為了簡潔也可以用下面這種方式
/*while (*str++)
return str - start-1;*/ }
(3)my_strlen( const char *p)//函式遞迴的方式
}
int main()
char* my_strcat(char *dest, const char *src)
int main()
char* my_strcpy(char *dest,const char *src)//目標指標
//char* 鏈式訪問 把乙個函式的返回值作為另乙個函式的引數
return ret;
}int main()
my_strstr(const char*str, const char*substr)
if (*s2 == '\0')
str++;
} return null;
}int main()
5.模擬實現strcmp函式--- 字串比較
my_strcmp(const char *str1, const char *str2) str1++; str2++; } if (*str1 > *str2) return 1; else return -1; //或者不用輸出正負1,只需要知道正負,可以直接輸出正負數,則可以簡化如下
// return *str1-*str2; } int main()
void* my_memcpy(void *dest, const void *src, int count)
return ret;
}int main()
; char arr2[20] = "abcdfef";
int arr4[10] = ;
int arr3[10] = ;
my_memcpy(arr2, arr1, 10);
my_memcpy(arr4, arr3, 40);
return 0;
}
void my_memmove(void *dest, const void*src, int count) } else } } int main() ; my_memmove(arr1+4, arr1 , 16); return 0; }
如果還有不理解的地方,可以聯絡博主,或者可以開啟原始庫函式,了解源庫函式的過程,以加深了解。
STL 常見庫函式
stack void push const t value 向棧頂插入乙個元素 void pop 移除棧頂元素 bool empty const 檢查棧是否為空 size type size const 返回棧中元素的數量 reference top const reference top cons...
庫函式的模擬實現
模擬實現strlen 方法1 計數器方式 intmy strlen const char str return count 方法2 不能建立零時變數計數器 intmy strlen const char str 方法3 指標 指標的方式 intmy strlen const char str 模擬實...
常用庫函式的模擬實現
size t strlen const char str strlen以 0 為結束標誌 函式返回的是在 0 前面出現的字元的個數 函式的返回型別是size t 無符號整形 計數器方式 int my strlen const char str return count 遞迴實現 int my str...