查阅资料发现strlen的返回值为size_t的无符号数
方法1
size_t my_strlen(const char* str) { assert(str);//断言判断str size_t n = 0;//用n来计算长度 while (*str++) { n++; } return n; }
方法2
size_t my_strlen(const char* str) { assert(str);//断言判断str const char* p = str;//标记起点值 while (*str) { str++; } return (str - p);//利用指针相减来计算长度 }
样例
#include <iostream> using namespace std; #include <string> #include <assert.h> size_t my_strlen(const char* str) { assert(str);//断言判断str size_t n = 0;//用n来计算长度 while (*str++) { n++; } return n; } int main() { char a[] = "abcab"; cout << my_strlen(a); return 0; }
运行结果