C语言实现合并字符串

学会Perl以及Python之后,处理字符串也只是我很喜欢做的一件事情。进行字符串的拼接在这些高级脚本语言中是一件轻松的事情。

C语言是我的编程入门语言,但是我一直对这门语言了解并不是很深。确切说,我是对庞大的标准库以及GNU等函数库知之甚少。

使用C语言进行字符串的拼接应该怎么做呢?在先前,我肯定是要定义一个新的“字符串”,然后进行内存的拷贝。其实,有一个printf函数的孪生兄弟可以实现这个功能,那就是sprintf。

其实,在接触操作系统的时候我对这个函数多少有一点认识。那就是这个函数在实现屏显的时候比printf更为底层,而且可以直接操作内存。那么,使用这个函数进行字符串的拼接应该如何做呢?

示范代码如下:

#include"stdio.h"

#include"stdlib.h"

#include"string.h"

int main(void)

{

  char str1[] = "my string 1";

  char str2[] = "string 2";

  char *strCat = (char*)malloc(strlen(str1) + strlen(str2));

  sprintf(strCat,"%s%s",str1,str2);

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

  return 0;

}

代码的编译执行如下:

E:\01_workSpace\02_programme_language\01_clang\2017\08\08>gccstrCat.c

E:\01_workSpace\02_programme_language\01_clang\2017\08\08>a

my string 1string2

从上面的结果可以看出,通过sprintf实现了字符串的拼接功能。

以上这篇C语言实现合并字符串就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • c语言 两字符串交叉合并实例

    我就废话不多说了,直接上代码吧! //这里给出两种方法 #include<stdio.h> #include<string.h> #define M 20 void main() { char str1[M],str2[M],newstr[2*M]; int chang1,chang2,i,flag,j; int low,high; printf("请输入第一个字符串:\n"); gets(str1); printf("请输入第二个字符串:\n&quo

  • c语言获取用户输入字符串是scanf和gets的区别详解

    解释 gets(s)函数与 scanf("%s",&s) 相似,但不完全相同,使用scanf("%s",&s) 函数输入字符串时存在一个问题,就是如果输入了空格会认为字符串结束,空格后的字符将作为下一个输入项处理,但gets()函数将接收输入的整个字符串直到遇到换行为止. 1.scanf() 所在头文件:stdio.h 语法:scanf("格式控制字符串",变量地址列表); 接受字符串时:scanf("%s",

  • C语言实现字符串操作函数的实例

    C语言实现字符串操作函数的实例 在编写程序的过程中,我们经常使用到一些字符串函数,例如求字符串长度,拷贝字符串--,这些函数都在C标准库中存在,我们可以直接使用.但我们还需要掌握这些函数的实现方法,今天来看看一些常用的字符串操作函数的实现方法. 1.strlen strlen是用来求字符串长度的函数,字符串长度就是它所包含的字符个数. 今天给大家介绍三种实现strlen函数的方法 (1)定义一个计数器count //方式一:定义一个计数器 size_t my_strlen(const char

  • C语言中字符串的存储方法

    众所周知,C语言中没有数据类型能够存储字符串,char数据类型仅仅能够存储一个字符的数据,那么在C语言中关于存储字符串这一难题我们改何去何从呢? 下面将详述相关的字符串存储方法; 1.使用字符数组存; [root@Qrui ruiy]# #include<stdio.h> int main(int argc,const char *argv[],const char **env[]) { char name[] = "qinrui";//定义一个字符数组,并初始化; cha

  • 详解C语言中的字符串数组

    在C语言当中,字符串数组可以使用: char a[] [10]; 或者 char *a[]; 表示 第一种表示方式固定了每个字符串的最大大小.第二种没有字符串的大小限制. #include <stdio.h> #include <string.h> //该程序的功能是 输入阿拉伯数字的月份数 输出英文月份 int main() { //一个字符串数组 它的下标代表英文月份的阿拉伯数字 char *month[] = {"January","Februa

  • C语言实现合并字符串

    学会Perl以及Python之后,处理字符串也只是我很喜欢做的一件事情.进行字符串的拼接在这些高级脚本语言中是一件轻松的事情. C语言是我的编程入门语言,但是我一直对这门语言了解并不是很深.确切说,我是对庞大的标准库以及GNU等函数库知之甚少. 使用C语言进行字符串的拼接应该怎么做呢?在先前,我肯定是要定义一个新的"字符串",然后进行内存的拷贝.其实,有一个printf函数的孪生兄弟可以实现这个功能,那就是sprintf. 其实,在接触操作系统的时候我对这个函数多少有一点认识.那就是这

  • Go语言中的字符串拼接方法详情

    目录 1.string类型 2.strings包 2.1 strings.Builder类型 2.2 strings.Reader类型 3.bytes.Buffer 3.1 bytes.Buffer:写数据 3.2 bytes.Buffer:读数据 4.字符串拼接 4.1 直接相加 4.2strings.Builder 4.3 strings.Join() 4.4 bytes.Buffer 4.5 append方法 4.6 fmt.Sprintf 5.字符串拼接性能测试 1.string类型 s

  • C语言数据结构实现字符串分割的实例

    C语言数据结构实现字符串分割的实例 以下为"字符串分割"的简单示例: 1. 用c语言实现的版本 #include<stdio.h> /* 根据空格分隔字符串 */ int partition(char *src, char *par, int pos) { int i,j; i = pos; //取到第一个非空格字符 while(src[i] == ' ') { ++i; } if(src[i] != '\0') { j = 0; while((src[i] != '\0'

  • Go语言转换所有字符串为大写或者小写的方法

    本文实例讲述了Go语言转换所有字符串为大写或者小写的方法.分享给大家供大家参考.具体如下: Go语言的string模块包含了ToLower和ToUpper函数,用于将字符串转换成小写和大写 复制代码 代码如下: package main import (   "fmt"   "strings" ) func main() {   fmt.Println(strings.ToUpper("hello world")) } 希望本文所述对大家的Go语

  • 分组字符合并SQL语句 按某字段合并字符串之一(简单合并)

    标题:按某字段合并字符串之一(简单合并) 描述:将如下形式的数据按id字段合并value字段. id    value ----- ------ 1     aa 1     bb 2     aaa 2     bbb 2     ccc 需要得到结果: id     value ------ ----------- 1      aa,bb 2      aaa,bbb,ccc 即:group by id, 求 value 的和(字符串相加) 1.sql2000中只能用自定义的函数解决 cr

  • C语言实现将字符串转换为数字的方法

    本文实例讲述了C语言实现将字符串转换为数字的方法.分享给大家供大家参考.具体实现方法如下: C语言提供了几个标准库函数,可以将字符串转换为任意类型(整型.长整型.浮点型等)的数字.以下是用atoi()函数将字符串转换为整数的一个例子: 复制代码 代码如下: # include <stdio. h> # include <stdlib. h> void main (void) ; void main (void) {     int num;     char * str = &qu

  • C语言之实现字符串小写变大写的实例

    C语言之实现字符串小写变大写的实例 输入字符串单词,将单词小写全部变为大写. #include <iostream> #include <string> #include <vector> using namespace std; int main() { vector<string> ss; string s; while(cin>>s) ss.push_back(s); for(int i=0;i<ss.size();i++) { fo

  • C语言实现去除字符串中空格的简单实例

    在网上看了些去除空格的代码,觉得都不是很简洁,就自己写代码实现它本着高效率,不使用额外存储空间的想法实现该功能去除空格一共有三种: 1.去除全部空格: 2.一种是去除左边空格: 3.去除右边空格  想去除左右两边空格,只要先去除左边再去除右边的就行了 以下是实现代码: /*去除字符串中所有空格*/ voidVS_StrTrim(char*pStr) { char *pTmp = pStr; while (*pStr != '/0') { if (*pStr != ' ') { *pTmp++ =

  • C语言中求字符串长度的函数的几种实现方法

    1.最常用的方法是创建一个计数器,判断是否遇到'\0',不是'\0'指针就往后加一. int my_strlen(const char *str) { assert(str != NULL); int count = 0; while (*str != '\0') { count++; str++; } return count; } 2.不创建计数器,从前向后遍历一遍,没有遇到'\0'就让指针向后加一,找到最后一个字符,记下来地址,然后用最后一个字符的地址减去起始地址,就得到了字符串的长度.

随机推荐