专业编程基础技术教程

网站首页 > 基础教程 正文

C语言100题集合017-使用指针连接两个字符串

ccvgpt 2024-09-08 12:46:13 基础教程 10 ℃

系列文章《C语言经典100例》持续创作中,欢迎大家的关注和支持。

喜欢的同学记得点赞、转发、收藏哦~

C语言100题集合017-使用指针连接两个字符串

后续C语言经典100例将会以pdf和代码的形式发放到公众号

欢迎关注:计算广告生态 即时查收


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);
}

示例结果:

nbsp;gcc ex017.c -o demo
nbsp;./demo
第一个字符串:技术分享园子
第二个字符串:计算广告生态
连接后的字符串是:
技术分享园子,计算广告生态


--END--

喜欢本文的同学记得点赞、转发、收藏~

更多内容,欢迎大家关注我们的公众号:计算广告生态

后续C语言经典100例将会以pdf和代码的形式发放到公众号

同时也带来更多系列文章以及干货!

最近发表
标签列表