输入三个字符串,通过指针读取各个字符串的子串(子串是指字符串中连续的一小部分),把它们合并成一个新字符串 要求: 1. 三个字符串的创建和输入可以使用数组,也可以不用 2. 输入后,根据三个字符串的子串的长度,计算出新字符串的长度 3. 使用动态数组的方法创建新的字符串,并且使用指针读取三个字符串的不同部分,并且复制到新字符串中,要求整个过程都不能使用数组下标 4. 使用指针输出新的字符串
时间: 2023-05-29 21:01:19 浏览: 160
用指针计算字符串长度
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
const int max_len = 100;
char s1[max_len + 1], s2[max_len + 1], s3[max_len + 1];
int len1, len2, len3;
char *sub1, *sub2, *sub3, *new_str;
int len_new;
cout << "输入三个字符串,每个字符串长度不超过" << max_len << "个字符:" << endl;
cin >> s1 >> s2 >> s3;
len1 = strlen(s1);
len2 = strlen(s2);
len3 = strlen(s3);
cout << "输入三个字符串的子串的长度,空格隔开:" << endl;
cin >> len1 >> len2 >> len3;
len_new = len1 + len2 + len3;
new_str = new char [len_new + 1];
sub1 = s1;
sub2 = s2;
sub3 = s3;
while (*sub1 && len1--)
*new_str++ = *sub1++;
while (*sub2 && len2--)
*new_str++ = *sub2++;
while (*sub3 && len3--)
*new_str++ = *sub3++;
*new_str = '\0';
cout << "拼接后的字符串为:" << endl;
cout << new_str - len_new << endl;
delete [] new_str - len_new; // 维护动态内存的责任不能忘记
return 0;
}
阅读全文