C语言字符串操作函数实现
strcat
#include <string.h>
char *strcat(char *dest, const char *src);
功能:将src的字符串追加到dest之后
代码实现:
char* _strcat(char* dest, const char* src)
{
char* temp = dest;
while(*temp)
{
temp++;
}
while(*temp++ = *src++);
return dest;
}
strcpy
#include <string.h>
char *strcpy(char *dest, const char *src);
功能:将src的字符串拷贝到dest中
代码实现
char* _strcpy(char* dest,const char* src)
{
char* temp = dest;
if(NULL == dest && NULL == src)
{
return NULL;
}
while((*temp++ = *src++) != '\0');
return dest;
}
strlen
#include <string.h>
size_t strlen(const char *s);
功能:计算字符串长度不包括 ‘\0’
代码实现
size_t _strlen(const char* s)
{
if(NULL == s)
{
return 0;
}
const char* temp = s;
while(*temp)
{
temp++;
}
return temp-s;
}
strstr
#include <string.h>
char *strstr(const char *haystack, const char *needle);
功能:从干草堆中找到所包含的子串的首地址,如果存在,输出目标串从子串首地址开始的字符串
代码实现
char* _strstr(const char* dest, const char* src)
{
char* start = (char*)dest;
char* substart = (char*)src;
char* cp = (char*)dest;
if(NULL == dest && NULL == src)
return NULL;
while(*cp)
{
start = cp;
while(*start != '\0' && *substart != '\0' && *start == *substart)
{
start++;
substart++;
}
if(*substart == '\0')
{
return cp;
}
substart = (char*)src;
cp++;
}
return NULL;
}