使用指针连接两个字符串

1 题目

函数:connect()

功能:使用指针连接两个字符串

描述:

实现两个已知字符串的连接,放到另外一个字符串数组中,然后将连接好的字符串进行打印显示

2 思路

使用字符型指针变量指向字符串的指针做函数的参数来实现字符串的连接

注意初始化 char *conn来存储新字符串的时候,必须先分配存储空间

char *conn = (char *)malloc(strlen(str1)+strlen(str2)+1);
memset(conn, strlen(str1)+strlen(str2)+1, 0); // 可选,初始化填充内存空间

另外,使用指针的特性,使得 conn 不断被赋值, str1 和 str2 指向的存储地址,达到字符串的连接

3 代码

#include <stdio.h> 
#include <string.h> 
#include <stdlib.h>

/**
函数:connect()
功能:使用指针连接两个字符串
描述:
实现两个已知字符串的连接,放到另外一个字符串数组中,然后将连接好的字符串进行打印显示
**/


void connect(char *str1, char *str2, char *conn) {
    while(*str1 != '\0') {
        *conn = *str1;
        conn++;
        str1++;
    }
    *conn = ',';    // 两个字符串直接添加逗号
    conn++;
    while(*str2 != '\0') {
        *conn = *str2;
        conn++;
        str2++;
    }
    *conn = '\0';
}


int main(int argc, char const *argv[]) {
    char *str1 = "技术分享园子";
    char *str2 = "计算广告生态";
    char *conn = (char *)malloc(strlen(str1)+strlen(str2)+1);   // 为 conn 分配空间,否则是无效地址
    memset(conn, strlen(str1)+strlen(str2)+1, 0);               // 初始化 conn 指向的存储地址
    printf("第一个字符串:%s\n", str1);
    printf("第二个字符串:%s\n", str2);
    connect(str1, str2, conn);
    printf("连接后的字符串是:\n");
    printf("%s\n", conn);
}

示例结果:

$ gcc ex017.c -o demo
$ ./demo
第一个字符串:技术分享园子
第二个字符串:计算广告生态
连接后的字符串是:
技术分享园子,计算广告生态
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容