1. 求字符串的长度
int Mystrlen(const char *str)
{
int i;
for (i=0; str[i]!='\0'; i++)
{;}
return i;
}
2. 字符串拷贝,这里给出了4种方法
方法一:
void Mystrcpy1(char *des, const char *src)
{
int i = 0;
while (src[i] != '\0') // for (i=0; src[i]!='\0'; i++)
{ // {
des[i] = src[i]; // des[i] = src[i];
i++; // }
} //
des[i] = '\0';
}
方法二:
void Mystrcpy2(char *des, const char *src)
{
int i = 0;
for ( ; *(src+i)!='\0'; i++)
{
*(des + i) = *(src + i);
}
*(des+i) = '\0';
}
方法三:
void Mystrcpy3(char *des, const char *src)
{
while (*src != '\0')
{
*des = *src; //这三个语句可以写成:
des ++; //*(des ++) = *(src ++);
src ++; //
}
*des = '\0';
}
方法四:
void Mystrcpy4(char *des, const char *src)
{
while (*des++ = *src++);
}
3. 字符串的连接
char *Mystrcat(char *des, const char *src)
{
while (*des != '\0')
{
des ++;
}
while (*(des++) = *(src++));
return des;
}
4. 字符串的比较
int Mystrcmp(const char *str1, const char *str2)
{
int tmp;
assert(str1!=NULL && str2!=NULL);
while ((tmp = *str1 - *str2) == 0 && *str1!= '\0')
{
str1 ++;
str2 ++;
}
return tmp;
}