c++输入两字符串使用指针将其连接,输入字符串中可能包含空格,请给出代码实现
时间: 2024-03-18 12:42:08 浏览: 17
可以使用指针和字符串处理函数 `strcat` 将两个字符串连接起来。在输入字符串时,可以使用 `cin` 函数,因为它可以正确处理包含空格的字符串。
下面是一个示例代码:
```c++
#include <iostream>
#include <cstring>
using namespace std;
int main() {
const int MAX_LEN = 100;
char str1[MAX_LEN], str2[MAX_LEN];
cout << "请输入第一个字符串:";
cin.getline(str1, MAX_LEN); // 获取包含空格的字符串
cout << "请输入第二个字符串:";
cin.getline(str2, MAX_LEN); // 获取包含空格的字符串
strcat(str1, str2); // 将 str2 连接到 str1 的末尾
cout << "合并后的字符串是:" << str1 << endl;
return 0;
}
```
在上面的代码中,我们首先定义了两个字符数组 `str1` 和 `str2`,用于保存输入的两个字符串。然后使用 `cin.getline` 函数获取输入的字符串,该函数可以正确处理包含空格的字符串。接下来使用 `strcat` 函数将 `str2` 的内容连接到 `str1` 的末尾,最后输出连接后的字符串。
相关问题
c++输入两个字符串,使用指针将两字符串连接,输入字符串中可能含有空格
可以使用指针将两个字符串连接起来,具体实现如下:
```c++
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char str1[100], str2[100];
char *p1, *p2;
cout << "请输入第一个字符串:";
cin.getline(str1, 100); // 可以输入含有空格的字符串
cout << "请输入第二个字符串:";
cin.getline(str2, 100);
p1 = str1 + strlen(str1); // p1 指向 str1 的末尾
p2 = str2;
while (*p2 != '\0') {
*p1++ = *p2++; // 将 str2 的内容复制到 str1 的末尾
}
*p1 = '\0'; // 加上字符串结束符
cout << "连接后的字符串为:" << str1 << endl;
return 0;
}
```
上述代码中,先定义了两个字符数组 `str1` 和 `str2`,然后定义两个指针 `p1` 和 `p2`,分别指向两个字符串的首地址。接着使用 `strlen` 函数获取 `str1` 的长度,将 `p1` 指向 `str1` 的末尾。然后使用 `while` 循环,将 `str2` 中的内容复制到 `str1` 的末尾。最后加上字符串结束符,输出连接后的字符串。
c++使用指针连接键盘输入的两个字符串,输入的字符串中可能含有空格
可以使用指针和动态内存分配来连接键盘输入的两个字符串,下面是一个示例程序:
```c++
#include <iostream>
#include <cstring>
using namespace std;
int main() {
const int MAX_LEN = 100;
char* str1 = new char[MAX_LEN]; // 动态分配内存
char* str2 = new char[MAX_LEN];
cout << "请输入第一个字符串:" << endl;
cin.getline(str1, MAX_LEN); // getline函数可以读取包含空格的字符串
cout << "请输入第二个字符串:" << endl;
cin.getline(str2, MAX_LEN);
int len1 = strlen(str1);
int len2 = strlen(str2);
char* str3 = new char[len1 + len2 + 1]; // 动态分配内存
strcpy(str3, str1); // 将第一个字符串拷贝到str3中
strcat(str3, str2); // 将第二个字符串拼接到str3的末尾
cout << "拼接后的字符串为:" << endl;
cout << str3 << endl;
delete[] str1; // 释放内存
delete[] str2;
delete[] str3;
return 0;
}
```
上述程序中,使用了 `getline` 函数读取包含空格的字符串,使用了 `strcpy` 函数将第一个字符串拷贝到 `str3` 中,使用了 `strcat` 函数将第二个字符串拼接到 `str3` 的末尾,最后释放了动态分配的内存。