请叫我小胡


私信TA

用户名:Walkerone2019

访问量:6471

签 名:

读万卷书,行万里路。

等  级
排  名 1525
经  验 2809
参赛次数 2
文章发表 14
年  龄 24
在职情况 学生
学  校 天津工业大学
专  业

  自我简介:

逐梦路上的前行者......

解题思路:简单讲就是讲str2的字符添加到str1最后一个字符之后或者建立一个新的字符串str3来存放str1和str2,这个字符串的长度为两者字符个数之和再加1(这个长度使用strlen()函数取的),然后将str1和str2的字符放到str3中。

注意事项:字符串更新完后要加上字符串结束字符:'\0'.

参考代码:

方法一:

#include<stdio.h>

#include<string.h>

void strLink(char str1[], char str2[]);

int main()

{

     char str1[10],str2[10];

     scanf("%s\n", str1);

     scanf("%s", str2);

     strLink(str1, str2);

     puts(str1);

     return 0;

}

void strLink(char str1[], char str2[])

{

     int n1 = strlen(str1);

     int n2 = strlen(str2);

     for (int i = n1,j = 0; j < n2; j++, i++)

     str1[i] = str2[j];

     str1[n1 + n2] = '\0';    // 切记一定要添加结束字符。 

}


方法二:

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

void strLink(char str1[], char str2[],char str3[]);

int main()

{

     char str1[10],str2[10];

     scanf("%s\n", str1);

     scanf("%s", str2);

     int m1 = strlen(str1);

     int m2 = strlen(str2);

     int m = m1 + m2 + 1;

     char *str3;

     str3 = (char *)malloc(m*sizeof(char));  //这个是没办法,不支持变长数组,只能用动态的了。

     strLink(str1, str2,str3);

     puts(str3);

     free(str3);

     return 0;

}

void strLink(char str1[], char str2[],char str3[])

{

     int n1 = strlen(str1);

     int n2 = strlen(str2);

     int i,j;

     for (i = 0; i < n1; i++)

     str3[i] = str1[i];

     for (i = 0, j = n1; i < n2; i++, j++)

     str3[j] = str2[i];

     str3[j] = '\0';

}

实测两种方法都通过。

 

0.0分

1 人评分

  评论区

  • «
  • »