62库

您现在的位置是:首页 > 前端开发 > Html/Css > 正文

Html/Css

c语言中合并字符串函数 c++ 合并字符串

Admin2023-11-11Html/Css52

C语言怎么合并两个字符串?

先加头文件#includestring.h

char a[10]="123";

char b[10]="abc";

strcat(a,b); //连接两个字符串,连接后的字符串存放在a中,数组a中有足够空间

printf("%s",a); //输出连接后的字符串

或:

#includestring.h

char a[10]="123";

char b[10]="abc";

char c[20];

strcpy(c,a); //把串a复制到有足够空间的c中

strcat(c,b); //把b连接到c的串尾

C语言:编写一个函数,将两个字符串合并到另一个字符串中?

#include stdio.h

#include string.h

void catstring(char *str0, int len0, char *str1, int len1, char *str2, int len2)

{

if (len2 = len0 + len1) {

return;

}

memcpy(str2, str0, len0);

memcpy(str2 + len0, str1, len1);

}

int main()

{

char str0[20] = "Golden";

char str1[20] = "View";

char str2[20] = { 0 };

catstring(str0, strlen(str0), str1, strlen(str1), str2, 20);

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

return 0;

}

请采纳,谢谢!

C语言里如何将多个字符串数据合成一个数据?

主要有两种方法,一个是字符串连接操作strcat,另一个是格式化输出sprintf,主要代码如下,

//程序功能实现字符串合并

#include stdio.h

#include string.h

int main(int argc, char *argv[])

{

char name1[32]="456",name2[32]="123",name3[32]="789";

char NAME1[256]={'\0'},NAME2[256]={'\0'};

//字符串连接函数

strcat( NAME1,name2);

strcat( NAME1,name1);

strcat( NAME1,name3);

//格式化输出

sprintf(NAME2,"%s%s%s", name2, name1, name3);

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

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

return 0;

}

char *strcat( char *str1, const char *str2 );函数将字符串str2

连接到str1的末端,并返回指针str1。

int sprintf( char *buffer, const char *format, ... );sprintf和printf类似,

只是把输出发送到buffer缓冲区中,返回值是写入的字符数量。

c语言中如何 把多个字符串合并

#include stdio.h

#include string.h

main()

{

char strDes[N]= "kkkjdah", strSor[N]="sdasdaaa";

strcat(strSor,strDes);//链接

puts(strDes);

puts(strSor);

}

c语言 字符串合并

////////// 如果通过一个地址返回呢?该怎么处理啊?

#includestdio.h

#includestring.h

#define M 3

#define N 30

void fun(char a[M][N], char *b)

{

for (int i = 0; i M; ++ i ){

strcat( b, a[i]); // 这样子使用.

}

}

int main(int argc, char ** argv )

{

char w[M][N]={"AAAA","BBBBBBB","CC"}, a[100];

int i ;

printf("The string: \n");

for(i=0; iM; i++){

printf("w[%d] = [%20s] \n", i, w[i]);

}

printf("\n");

//bzero(a, sizeof(a));

memset(a,0, sizeof(a));

fun(w,a);

printf("The A string: --------- \n");

printf("a = [%30s]\n",a);

return 0;

}

////////////////////////////// 为什么结果出现错误 无法运行??

// 因为 b 没有给它申请内存, 是个未定义的指针. 肯定会出错.

// 用 strcat 时, 一定要确保, 目标内存的大小有足够的空间存放合并后的字符串.

// 如果空间太小, 就会出现内存溢出.

#includestdio.h

#include string.h  

int main( int argc, char ** argv )

{

char *b = NULL;

char a[3][20]={"AAAA","BBBBBBB","CC"};

int len = strlen(a[0]) + strlen(a[1]) + strlen(a[2]) + 1 ; //目标字符串长度.

b = (char *)malloc( len ) ;

memset(b, 0, len); // 清0 ;

strcat(b,a[0]);

strcat(b,a[1]);

strcat(b,a[2]);

printf("%s",b);

free(b); // 要记得 free 哦.

b = NULL;

return 0;

}

C语言 合并字符串数组

做如下几个方面的修改:

1:声明的STK和定义的保持一致

2:STK中返回的是局部数组变量,这样是不能返回到主函数的

3:字符串的末尾需要加'\0'。

#include stdio.h

#include string.h

char* Stk(char*, char*, char*);//声明合并字符串函数

int main()

{

    char string1[20],string2[10], string3[30];

    gets(string1);

    gets(string2);

    puts(Stk(string1,string2, string3));

    return 0;

}

char* Stk(char str1[],char str2[], char str3[])

{

    int i,j,k,a,b;

    a=strlen(str1),b=strlen(str2);

    j=0,k=0;

    i=strlen(str1)+strlen(str2);

    for(i=0;i=a;i++)

    {

        str3[i]=str1[j];

        j++;

    }

    for(i=a;i=(a+b);i++)

    {

        str3[i]=str2[k];

        k++;

    }

    str3[a+b]='\0';///////

    return str3;

}

发表评论

评论列表

  • 这篇文章还没有收到评论,赶紧来抢沙发吧~