用C++输入 S1和S2两个字符串,将长的字符串拼接在短的字符串后面并输出,如果长度相 等,S1接在 S2 后面。假设两个字符串的长度相加不超过 80。用一个比较投机的方法
时间: 2024-05-01 12:21:58 浏览: 133
可以利用C语言中的三目运算符来实现。
代码如下:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char s1[41], s2[41], *shorter, *longer;
int len1, len2;
printf("请输入字符串S1:");
scanf("%s", s1);
printf("请输入字符串S2:");
scanf("%s", s2);
len1 = strlen(s1);
len2 = strlen(s2);
shorter = (len1 <= len2) ? s1 : s2;
longer = (len1 > len2) ? s1 : s2;
strcat(longer, shorter);
printf("拼接后的字符串为:%s\n", longer);
return 0;
}
```
首先,我们定义了两个字符串数组 `s1` 和 `s2`,用来存储用户输入的两个字符串。由于两个字符串的长度相加不超过 80,所以我们将数组长度设为 41,以容纳最长的字符串。
接着,我们使用 `scanf` 函数分别读入两个字符串。
然后,我们使用 `strlen` 函数计算两个字符串的长度,存储在变量 `len1` 和 `len2` 中。
接下来,我们使用三目运算符来确定两个字符串中哪个较短、哪个较长。具体地,我们将较短的字符串的地址存储在指针变量 `shorter` 中,将较长的字符串的地址存储在指针变量 `longer` 中。
最后,我们使用 `strcat` 函数将较短的字符串拼接在较长的字符串后面,并输出拼接后的字符串。
需要注意的是,`strcat` 函数会将较短的字符串拼接在较长的字符串后面,因此我们需要将较长的字符串存储在数组中,以保证足够的空间。此外,为了避免修改常量字符串,我们使用指针变量来存储较短和较长的字符串。
阅读全文