名称:strcpy
功能:复制字符串
char* strcpy(char* dest, const char* src)
{
if(dest == NULL || src == NULL)
{
return NULL;
}
char* tmp = dest;
while((*tmp++ = *src++) != '\0');
return dest;
}
名称:strncpy
功能:复制字符串
strncpy把src所指向以'\0'结尾的字符串的前n个字符复制到dest所指的数组中,返回指向dest的指针。
注意:
当n>=sizeof(src)时,拷贝正确,并在dest字符串后面加入'\0';
当n
char* strncpy(char* dest, const char* src, size_t count)
{
if(dest == NULL || src == NULL)
{
return NULL;
}
char* tmp = dest;
while(count--)
{
*dest++ = *src++;
}
return tmp;
}
名称:strcmp
功能:比较字符串
int strcmp(const char* s0, const char* s1)
{
int ret = 0;
unsigned char c1,c2;
while(1)
{
c1 = *s0++;
c2 = *s1++;
if(c1 != c2)
{
return c1 > c2 ? 1 : -1;
}
if(!c1)
{
break;
}
}
return ret;
}
名称:strncmp
功能:比较字符串
int strncmp(const char* s0, const char* s1, size_t count)
{
int ret = 0;
unsigned char c1,c2;
while(count)
{
c1 = *s0++;
c2 = *s1++;
if(c1 != c2)
{
return c1 > c2 ? 1 : -1;
}
if(!c1)
{
break;
}
count--;
}
return ret;
}
名称:reserve
功能:字符串反转
void reserve(char* word)
{
if(word != NULL)
{
char* start = word;
char* end = word;
while(*end++);
end -= 1;
while(start < end)
{
char s = *start;
*start = *end;
*end = s;
start++;
end--;
}
}
}
名称:reserveWords
功能:字符串反转
I love you -----> you love i
void reserveWords()
{
char words[] = "I love You";
reserve(words);
char* start = words;
char* end = words;
while(*end != '\0')
{
if(*end == '\0' || *end == ' ')
{
char tmp[20];
memcpy(tmp, start, end - start);
reserve(tmp);
start = end;
}
else if(*end == ' ')
{
start++;
end++;
}
else
{
end++;
}
}
}