Example_2

任务:合并两个升序字符串

思路:

​ 在字符串均未出界的时候,比较大小,小的给第三个字符串。当有一个字符串走完最后一个字符的时候,把另一个字符串跟第三个字符串拼接即可。

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <stdio.h>
#include <string.h>
//两个升序字符串按照升序合并

int main()
{
char a[20], b[20], c[40], * p;

printf("Please input string a:\n");
scanf("%s", &a);
printf("Please input string b:\n");
scanf("%s", &b);

int i = 0;
int k = 0;
int j = 0;
while (a[i] != '\0' && b[j] != '\0')
{
if (a[i] < b[j])
{
c[k] = a[i];
i++;
}
else
{
c[k] = b[j];
j++;
}
k++;
}
c[k] = '\0';
if (a[i] == '\0')
{
p = b + j;
}
else
{
p = a + i;
}
strcat(c, p);
puts(c);

return 0;
}