一种是使用C语言自带的strcat函数来完成,strcat(str1,str2),可以将str2指定的字符串连接到str1指定的字符串后面,结果存储在指定的字符数组中,str1指定的字符串原来最后面的‘\0’被取消。因为要把str2接在str1后面,所以应该多给str1分配一些内存。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>int main()
{char str1[128]={0};char str2[32]={0};scanf("%s %s",str1,str2);printf("%s\n",strcat(str1,str2));printf("\n");system("pause");return 0;
}

另一种就是自己写一个函数,让str2中的字符串接在str1上。我定义了3个字符数组str1,str2,str3,其中str3用来存储str1和str2的内容。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>char str3[200];//长度最好大于str1+str2的长度之和,以避免溢出
void connect(char str1[],char str2[]);int main()
{char str1[100];char str2[100];scanf("%s %s",str1,str2);connect(str1,str2);printf("%s",str3);printf("\n");system("pause");return 0;
}void connect(char str1[],char str2[])
{int i=0,j=0;while(str1[i]!='\0'){/*str3[j]=str1[i];i++;j++;*/str3[j++]=str1[i++];}i=0;while(str2[i]!='\0'){/*str3[j]=str2[i];i++;j++;*/str3[j++]=str2[i++];}str3[j]='\0';
}

在写完这个代码后我发现虽然连接了两个字符串,但多定义了一个数组,是对内存的一种浪费,于是进行了优化,将str2直接接在str1上。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>void connect(char str1[],char str2[])
{int i=0,j=0;//计数while(str1[i]!='\0') i++;while(str2[j]!='\0'){str1[i]=str2[j];i++;j++;//也可以写成str1[i++]=str2[j++] }
}int main()
{char str1[128]={0};char str2[32]={0};scanf("%s %s",str1,str2);connect(str1,str2);printf("%s\n",str1);printf("\n");system("pause");return 0;
}

可以在这些代码里面使用strlen函数看看前后字符串长度的改变,这里我就不罗列出来了。

C语言连接两个字符串相关推荐

  1. c语言 连接两个字符串不使用库函数

    #include<stdio.h> void main(){//输入两个字符串并连接 不能使用库函数strcat//字符串str1printf("please enter str ...

  2. 连接两个字符串(c语言)

    利用两种方法实现连接两个字符串. 方法1:利用C语言的库函数strcat()来实现两个字符串的连接. 方法2:不允许使用连接函数strcat(),即自己编写程序将字符串2中的字符逐个复制到字符串1的后 ...

  3. c语言字符串连接作用,C语言 不使用strcat函数实现连接两个字符串功能代码

    字符串连接函数: 字符串连接就是将一个字符串连接到另一个字符串的末尾,使其组合成一个新的字符串,在字符串处理函数中,strcat  函数具有字符串连接功能.下面是用C语言实现不使用是strcat 函数 ...

  4. c语言连接字符串不用strcat,不要strcat函数连接两个字符串

    不用strcat函数连接两个字符串 程序如下: #include "stdio.h" #include "conio.h" #include "mat ...

  5. C语言如何实现连接两个字符串?通俗易懂,一点就通!

    题目:如何连接两个字符串? #include <stdio.h> int main() {char s1[80],s2[80]; //定义两个字符串数组int i,j; //定义两个循环变 ...

  6. python中如何连接两个字符串_python字符串连接的N种方式总结

    python中有很多字符串连接方式,今天在写代码,顺便总结一下: 最原始的字符串连接方式:str1 + str2 python 新字符串连接语法:str1, str2 奇怪的字符串方式:str1 st ...

  7. python中如何连接两个字符串_python中5种连接字符串的方法

    字符串是Python中常用的数据类型,在开发过程中可以对字符创进行截取并与其他字符创进行连接.本文为大家介绍了5种连接字符串的方法. 1.加号 如果有其他编程语言开发经验的人,肯定知道很多语言里面是用 ...

  8. php两个字符串公共,C++_C语言求两个字符串的最长公共子串,本文实例讲述了C语言求两个字 - phpStudy...

    C语言求两个字符串的最长公共子串 本文实例讲述了C语言求两个字符串的最长公共子串的方法.分享给大家供大家参考.具体实现方法如下: #include "stdio.h" #inclu ...

  9. C语言比较两个字符串相等为什么不是用“==”

    C语言比较两个字符串相等为什么不是用"=="? 今天在学习C语言编程时,遇到需要比较两个字符串是否相等的问题,习惯性的想到用"=="去比较,可是输出的结果却大相 ...

最新文章

  1. 通过BeanFactory获取bean的几种方法
  2. python3爬取数据存入mysql_Python如何爬取51cto数据并存入MySQL
  3. codeforces gym-101741 Subsequence Sum Queries 分治+离线
  4. Python Web初学解惑之 WSGI、flup、fastcgi、web.py的关系
  5. 刚刚有水了一道,用递归实现进制转换
  6. DBeaver 导出EXCEL文件
  7. Linux打开文件操作的注意事项
  8. Office LTSC 2021 for Mac
  9. linux网络完全与防护
  10. Raki的读paper小记:Code and Named Entity Recognition in StackOverflow
  11. POJ 1565 Skew Binary
  12. 极客日报:《英雄联盟》回应服务器崩了:官方直接回退了旧版本;Deno 1.19 发布|极客头条
  13. 液晶屏常见问题_如何解决液晶显示器最常见的问题
  14. CVE-2017-8464震网3.0漏洞分析与复现
  15. K 个一组翻转链表(递归,Kotlin)
  16. Flutter 网络请求 Dio 拦截器详解
  17. 第四章 舞会上的国王
  18. 牛客网:字节19研发:雀魂启动
  19. Photoshop开门十件事
  20. 兄弟2560打印机提示DRUM!

热门文章

  1. 个人知识管理为什么要软件工具为主理念为次?
  2. 健身耳机哪个好,运动最佳的几款耳机推荐
  3. 学习opencv:PS滤镜—等高线
  4. 侠义java加速_侠义加速版下载-侠义加速版游戏下载v1.7 安卓版-单机手游网
  5. 有没有测试游戏天赋的软件,lgd游戏天赋测试,lgd游戏天赋测试最新版预约 v1.0-手游汇...
  6. css碎步测量,工地测量实习报告.doc
  7. 小密圈的趣味实战-微信主题
  8. 各种字符编码详解【图文教程】
  9. Java后端如何对日期做储存并可以以日期排序
  10. mysql 插入数据时,出现\xF0\x9F\x8F\x80这种情况的处理!