字符串的相關問題

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;
}




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章