自己实现的字符串处理函数

1、strcat(字符串连接函数)

     一般形式strcat(字符数组1字符数组2),将字符串2接到字符串1后面

char* my_strcat(char* StrDest, const char* StrSrc)
{
    char  *des = StrDest;
    assert((StrDest!=NULL)&&(StrSrc!=NULL));
    while (*StrDest)
    {
        StrDest++;
    }//StrDeest指向'',可以直接赋值吗?
    while (*StrDest++= *StrSrc++);
*StrDest='/0';
return des; }

调用时两个参数要传字符数组,字符数组必须足够大到可以容纳字符数组2

int main()
{
    char str1[20] = "I am ";
    char str2[10] = "a student";
     puts(my_strcat(str1, str2));
}

2、strcpy(字符串复制函数)

一般形式strcpy(字符数组1,字符串2),将字符串2复制到字符数组1中去

char* my_strcpy(char* StrDest,const char* StrSrc)
{
    char  *des = StrDest;
    assert((StrDest!=NULL)&&(StrSrc!=NULL));
    while (*StrDest++ = *StrSrc++);//<-
    return des;
    }

int main()
{
    char str1[20] = "I am 345453656";
    char str2[]="a student"; 
    puts(my_strcpy(str1, "ccc"));//ccc
     puts(my_strcpy(str1, str2));//a student

不能用赋值语句将字符串常量或字符数组给字符数组(用strcpy函数)

str1="china";

str1=str2;

3、strlen(字符串长度)

一般形式strcpy(字符数组)

int  my_strlen(const char* str)
{
    assert(str != NULL);
    int len = 0;
    while (*str++!='')
    {
        len++;
    }
    return len;
}

4、strcmp(字符串比较函数)

一般形式strcpy(字符串1,字符串2),比较字符串1和字符串2

int my_strcmp(const char* strDest, const char* strSrc)
{
    assert(strDest != NULL && strSrc != NULL);
const char* pDest = strDest; const char* pSrc = strSrc; int result = 0; while (*pDest != '' || *pSrc != '') { if ((result = *pDest - *pSrc) != 0) { break; //当两字符不相等时跳出,相等是继续往后指 } pDest++; pSrc++; } if (result > 0) { result = 1; } else if (result<0) { result = -1; } return result; }
原文地址:https://www.cnblogs.com/Blog-day/p/My_Blog_Days-34.html