C字符串相关函数

一. strcpy 

  • 功能:拷备字符串函数,将src所指向的字符串拷备到dest所指向的内存空间中。复制包含’\0’。st
  • 原型:char *strcpy(char *destin, char *source); 
  • 函数内部实现:
char * strcpy(char *dst,const char *src) {

    assert(dst != NULL && src != NULL);  

    char *ret = dst; 

    while ((*dst++=*src++)!='\0');

    return ret;

}

 

二. strncpy

  • 函数功能:拷备字符串函数,将src字符串的前n个字符拷备到dest所指向的内存空间中
  • 函数原型:char *strncpy(char *dest, const char *src, size_t n);
  • 函数实现:
char* my_strncpy(char *dest, const char *src, size_t n){

    char* ret = dest;

    assert(dest != NULL && src != NULL);

    while (*src && n){

        *ret++ = *src++;

        n--;

    }

    return dest;

}

 

三. strlen

  • 函数功能:求字符串长度函数,用于求C风格的字符串str的长度。
  • 函数说明:区别于sizeof,strlen遇到第一个’\0’就结束,返回的字符串长度不包括’\0’。
  • 原型:size_t strlen(const char *s);
  • 内部实现:
size_t my_strlen(char* s){

    size_t count = 0;

    while (*s != '\0'){

        count++;

        *s++;

    }

    return count;

}

 

四. strcat

  • 函数功能:字符串追加函数,将src所指向的字符串追加到dest所指向的字符串的末尾
  • 函数说明:dest和src所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串
  • 函数原型:char *strcat(char *dest, const char *src);
  • 函数实现:
char* my_strcat(char *dest, const char *src){

    char* ret = dest;

    assert(dest != NULL && src != NULL);

    while (*ret ){

        *ret++;

    }//*ret='\0'

    while (*src ){

        *ret++ = *src++;

    }//*src='\0'

    *ret = '\0';

    return dest;

}

 

五. strncat

  • 函数功能:字符串追加函数,将src所指向的字符串的前n个字符追加到dest所指向的字符串的末尾
  • 函数原型:char *strncat(char *dest, const char *src, size_t n);
  • 函数实现:
char* my_strncat(char *dest, const char *src,int n){

    char* ret = dest;

    assert(dest != NULL && src != NULL);

    while (*ret){

        *ret++;

    }//*ret='\0'



    while (*src && n){

        *ret++ = *src++;

        n--;

    }//*src='\0'



    *ret = '\0';

    return dest;

}

 

参考文章:

C 字符串相关函数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值