zoukankan      html  css  js  c++  java
  • 自己实现strcat函数

    问题:自己实现一个strcat_s函数,要和C语言库函数的strcat函数完成同样的功能。

    (1) 函数原型 char *strcat(char *dest, const char *src);

    (2) 函数说明 dest 为目的字符串指针,src 为源字符串指针。strcat() 会将参数 src 字符串复制到参数 dest 所指的字符串尾部;dest 最后的结束字符 NULL 会被覆盖掉,并在连接后的字符串的尾部再增加一个 NULL。

    注意:dest 与 src 所指的内存空间不能重叠,且 dest 要有足够的空间来容纳要复制的字符串。

    (3) 返回值 返回dest 字符串起始地址。

    C++实现代码:

    #include <stdio.h>
    #include <assert.h>
    
    char* strcat_s(char* dest, const char* src)
    {
        assert(dest != NULL && src != NULL);
        char* temp = dest;
        while (*temp != '') temp++;
        while ((*temp++ = *src++) != '');
    
        return dest;
    }
    
    int main() {
        char src[10] = "world";
        char dest[100] = "hello ";
        char* str3 = strcat_s(dest, src);
    
        printf("src = %s
    ", src);
        printf("dest = %s
    ", dest);
        printf("str3 = %s
    ", str3);
    
        return 0;
    }

     

    问题2:strcat能把strSrc 的内容连接到strDest,为什么还要char * 类型的返回值?

    答:方便赋值

  • 相关阅读:
    codevs 1213 解的个数(我去年打了个表
    176. [USACO Feb07] 奶牛聚会
    codevs 1515 跳
    codevs 1994 排队 排列组合+高精度
    poj 1811 Pallor Rho +Miller Rabin
    Miller_Rabin codevs 1702 素数判定2
    Lucas
    cos改ip
    用户名 不在 sudoers文件中,此事将被报告
    continue break
  • 原文地址:https://www.cnblogs.com/zkfopen/p/11059521.html
Copyright © 2011-2022 走看看