21xrx.com
2024-12-22 23:03:05 Sunday
登录
文章检索 我的文章 写文章
C语言中实现字符串连接 不能使用strcat函数
2023-06-18 05:35:14 深夜i     --     --
C语言 字符串连接 strcat函数 长度 内存 复制 结束符号 示例

在C语言中,字符串连接(字符串拼接)是一种常见的操作。通常使用strcat函数来实现。但是,如果不能使用strcat函数,该怎么实现字符串连接呢?

为了解决这个问题,我们可以采用以下方法实现:首先,获取第一个字符串的长度和第二个字符串的长度,将它们相加得到总长度,然后申请一块内存,长度为总长度加一(加一是为了存储结束符号'\0')。接着,将第一个字符串和第二个字符串按先后顺序复制到这块内存中即可。

以下是C语言代码示例:


#include

#include

#include

char* my_strcat(const char* s1, const char* s2) {

  if(s1 == NULL || s2 == NULL)

    return NULL;

  

  int len1 = strlen(s1);

  int len2 = strlen(s2);

  char* result = (char*)malloc(len1 + len2 + 1);

  if(result == NULL)

    return NULL;

  

  memcpy(result, s1, len1);

  memcpy(result + len1, s2, len2);

  result[len1 + len2] = '\0';

  return result;

}

int main() {

  char* s1 = "hello, ";

  char* s2 = "world.";

  char* s = my_strcat(s1, s2);

  printf("%s\n", s);

  free(s);

  return 0;

}

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复