zoukankan      html  css  js  c++  java
  • C语言中的字符串函数的实现,strcpy,strlen,strcat,strcmp

    strcpy函数实现字符串的拷贝

    模拟实现strcpy函数
    #include <stdio.h>
    #include <assert.h>
    char *my_strcpy(char *des,const char *src)
    {
    	char *ret = des;
    	assert (des!=NULL);
    	assert (src!=NULL);
    	while ((*des++)=(*src++))
    	{
    		;
    	}
    	return ret;
    }
    int main ()
    {
    	char arr[10] ={0};
    	char *p = "abcdef";
    	char *ret = my_strcpy(arr,p);
    	printf ("%s
    ",ret);
    	return 0;
    }

     

    strlen函数可以计算出字符串的长度 

    int my_strlen(const char *src) 
    { 
     int count = 0;  assert(src); 
     while ((*src++)) 
     {  
     count ++; 
     }  
     return count;
     }
     
    int main ()
     { 
     char *p="abcdef";  
     int ret = my_strlen(p); 
     printf ("%d
    ",ret); 
     return 0; 
    }

    模拟实现strlen函数

    strcat函数可以把一个字符串追加到另一个字符串中

    模拟实现字符串的追加strcat
    char *my_strcat(char *des,const char *src)
    {
    	char *ret = des;
    	assert(des);
    	assert(src);
    	while (*des)
    	{
    		des++;
    	}
    	while ((*des++)=(*src++))
    	{
    		;
    	}
    	return ret;
    }
    int main ()
    {
    	char arr[20] = "hello ";
    	char *p = "world!";
    	char *ret = my_strcat(arr,p);
    	printf ("%s
    ",ret);
    	return 0;
    }

     

    strcmp函数可以比较两个字符串的大小

    //模拟实现字符串的比较函数strcmp 
    int my_strcmp(const char *des,const char *src) 
    { assert (des); 
    assert(src);
     while ((*src)||(*des)) 
    { 
    if (*des>*src)
     {
     return 1;
     break; 
    }
     else if (*des<*src)
     { 
    return -1;
     break; 
    } 
    else if (*des==*src)
     { 
    des++; src++; 
    } 
    } 
    return 0; 
    } 
    int main () 
    { 
    char *p = "cdefdf"; 
    char *q ="cdef";
     int ret = my_strcmp(p,q);
     if (ret==1) 
    {
     printf ("较大的字符串是:%s
    ",p);
     } 
    else if (ret==-1)
     { 
    printf ("较大的字符串是:%s
    ",q); 
    } 
    else if (ret==0)
     { 
    printf ("两个字符串相等
    "); 
    } 
    return 0; 
    }
  • 相关阅读:
    ip报文
    常见端口
    navicat15 破解版
    谷歌跨域设置
    CSS flex弹性布局来做 页面底部自适应:页面高度不足时,在底部显示;页面高度超出时,随页面滚动(亲测有效)
    phpstorm 2019 激活码
    aes cbc模式
    Vue的安装及使用快速入门
    从SVN服务器端彻底删除错误提交版本
    Nginx配置https和wss
  • 原文地址:https://www.cnblogs.com/chan0311/p/9427369.html
Copyright © 2011-2022 走看看