编写程序实现strlen()函数,strcmp(),strcpy(),strcat()的功能

2021年09月15日 阅读数:2
这篇文章主要向大家介绍编写程序实现strlen()函数,strcmp(),strcpy(),strcat()的功能,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。
1.strlen()函数的实现(求字符串长度的函数)

#include <stdio.h>
#include <assert.h>

int my_strlen(const char *str)
{
  int count=0;
  assert(str!=NULL);
  while(*str)
  {
    count++;
                str++;
  }
  return count;
}
int main()
{
  char *string= "abcdef  ds123";
  printf("%d\n",my_strlen(string));
  system("pause");
  return 0;
}

2.strcmp()函数的实现(比较字符串的函数)

#include <stdio.h>
#include <assert.h>

int my_strcmp(const char *str1, const char *str2)
{
  assert(str1!=NULL);
  assert(str2!=NULL);
  while(*str1 && *str2  && (*str1==*str2))
  {
    str1++;
                str2++;
  }
  return *str1-*str2;
}
int main()
{
  char *str1= "abcdde";
  char *str2= "abcdef";
  printf("%d\n",my_strcmp(str1,str2));
  system("pause");
  return 0;
}

3.strcpy()函数的实现(将一个字符串复制到另外一个数组中,并将其覆盖)

#include <stdio.h>
#include <assert.h>

char *my_strcpy(char *dest,const char *scr)    //*scr将*dest里的东西覆盖
{
  char *ret=dest;
  assert(dest!=NULL);
  assert(scr!=NULL);
  while(*scr)
  {
    *dest=*scr;
                scr++;
                dest++;
  }
  *dest='\0';
  return ret;
}
int main()
{
                 char str1[100]="I love the world" ;   //注意此处str1必须是个数组,由于若是是个常量字符串,它就不能被改变了
                 char *str2="China" ;
                printf( "%s\n",my_strcpy(str1,str2));
  system("pause");
  return 0;
}

4.strcat()函数的实现(字符串链接函数)

#include <stdio.h>
#include <assert.h>

char *my_strcat(char *dest,const char *scr)
{
  char *ret=dest;
  assert(dest!=NULL);
  assert(scr!=NULL);
  while(*dest)
  {
    dest++;
  }
  while(*dest=*scr)
  {
    scr++;
                dest++;
  }
  return ret;
}
int main()
{
                 char str1[100]="I have " ;
                 char *str2="a dream!" ;
                printf( "%s\n",my_strcat(str1,str2));
  system("pause");
  return 0;
}