- 实现一个函数返回字符串str的长度(即空值结束符之前的字符数目)
#include <stdio.h>
#include <assert.h>
size_t _strlen(const char* str)
{
assert(NULL != str);
const char* tmp = str;
while(*tmp) tmp++;
return tmp-str;
}
- 实现一个函数将字符串src中的内容赋值到dest中
#include <stdio.h>
#include <assert.h>
char* _strcpy(char* dest,const char* src)
{
assert(NULL != dest && NULL != src);
char* tmp = dest;
while(*tmp++ = *src++)
return dest;
}
- 实现一个函数连接两个字符串
#include <stdio.h>
#include <assert.h>
char* _strcat(char* dest,const char* src)
{
assert(NULL != dest && NULL != src);
char* tmp = dest;
while(*tmp) tmp++;
while(*tmp++ = *sr++);
return dest
}
- 实现一个函数比较两个字符串
#include <stdio.h>
#include <assert.h>
int _strcmp(const char* s1,const char* s2)
{
assert(NULL != s1 && NULL != s2);
while(*s1 == *s2 && *s1) s1++,s2++;
if(*s1 > *s2)
return 1;
if(*s1 < *s2)
return -1;
return 0;
}
assert (断言)的作用是先计算表达式 expression ,如果其值为假(即为0),那么它先向 stderr 打印一条出错信息,然后通过调用 abort 来终止程序运行。