day18
a)子字符串查找
const char* StrStr(const char* des, const char* source)
{
const char* flag = NULL;
const char* p = source;
while (*des)
{
flag = des;
while (*p++ == *des++)
{
if (!*des)
return flag;
}
des++;
p = source;
}
return NULL;
}
b)字符串比较
int StringCmp(const char* str1, const char* str2)
{
int ret = 0;
while (!(ret = *(const unsigned char*)str1 - *(const unsigned char*)str2) && *str1)
str1++, str2++;
if (ret > 0)
return 1;
else if(ret < 0)
return -1;
return ret;
}
c)字符串拷贝
char* StrCpy(char* des, const char* source)
{
char* p = des;
while (*source)
*p++ = *source++;
*p = '\0';
return des;
}
d)字符串拼接
char* StrCat(char* des, const char* source)
{
char* p = des;
while (*p)
p++;
while (*source)
*p++ = *source++;
*p = '\0';
return des;
}
e)字符串反转
char* Reverse(char* str)
{
char* p1 = str;
char* p2 = str;
char temp;
while (*p1)
p1++;
while (p2 < --p1)
{
temp = *p1;
*p1 = *p2;
*p2 = temp;
p2++;
}
return str;
}