目录
  • strlen:
    • 1.计数器版本:
    • 2.递归的版本
    • 3.指针-指针版本
  • strcat:
    • strcmp:
      • 总结

        strlen:

        1.计数器版本:

        #include<stdio.h>
        #include<string.h>
        #include<assert.h>
        int my_strlen(const char *str)
        {
        	int count =0;
        	assert(str!=NULL);
        	while(*str!='\0')
        	{
        		count++;
        		str++;
        	}
        	return count;
         } 

        2.递归的版本

        int my_strlen(const char *str)
        {
         assert(str != NULL);
         if (*str == '\0')
         return 0;
         return (my_strlen(++str)+1);
        }

        3.指针-指针版本

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

        strcat:

        #include<stdio.h>
        #include<string.h>
        #include<assert.h>
        char *my_strcat(char *dest,char *str)
        {
        	char *ret=dest;//存dest的首地址 
        	assert(dest&&str);
        	while(*dest)
        	{
        		dest++;
        	}
        	while(*dest++=*str++);
        	dest=ret;
        	return dest;
        }

        strcmp:

        int my_strcmp(char *str1, char *str2)
        {
        	assert(str1&&str2);
        	while(*str1==*str2)
        	{
        		if(str1=='\0'&&str2=='\0')
        		return 0;
        		str1++;
        		str2++; 
        	}
        	if(*str1>*str2)
        	return 1;
        	return -1;
        	 //或return str1-str2;
         } 

        总结

        本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注的更多内容!

        声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。