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; 
    }
  • 相关阅读:
    spark-submit配置说明
    spark dataset join 使用方法java
    关于join算法的四篇文章
    IO负载高的来源定位
    MySQL执行SHOW STATUS查询服务器状态状态之Handler_read_* 详解
    5.6中使用字符串存放时间,导致隐式转换发生的记录
    Linux User's Manual IOSTAT
    【转】MegaSAS RAID卡 BBU Learn Cycle周期的影响
    mac下SSH很快被断开
    Java的正则表达式
  • 原文地址:https://www.cnblogs.com/chan0311/p/9427369.html
Copyright © 2011-2022 走看看