c++中如何用char字符串,且利用指针的操作,实现输入的两个字符串拼接起来。
时间: 2024-02-12 21:02:50 浏览: 110
可以使用 strcpy 和 strcat 函数来实现字符串拼接。以下是示例代码:
```c++
#include <iostream>
#include <cstring>
using namespace std;
int main() {
const int length = 100;
char str1[length], str2[length];
char* p = str1;
cout << "请输入第一个字符串:";
cin >> str1;
cout << "请输入第二个字符串:";
cin >> str2;
while (*p != '\0') {
p++;
}
strcpy(p, str2);
cout << "拼接后的字符串为:" << str1 << endl;
return 0;
}
```
这个程序首先定义了两个长度为 `length` 的字符数组 `str1` 和 `str2`,并且声明了一个指向 `str1` 的指针 `p`。然后通过 `cin` 输入两个字符串,然后将指针 `p` 移动到 `str1` 的末尾,接着使用 `strcpy` 函数将 `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++将数字转char字符串后拼接至另外一个char字符串
在C++中,你可以通过`std::stringstream`或者直接使用数组和指针来实现这个功能。这里我会给出两种常见的方法:
**方法一:std::stringstream**
```cpp
#include <sstream>
#include <string>
std::string numToString(int number) {
std::stringstream ss;
ss << number; // 将数字转换成字符串
return ss.str(); // 返回字符串表示的数字
}
void appendToString(std::string& target, const char* prefix) {
target += prefix; // 拼接到目标字符串
target += numToString(42); // 使用前面定义的函数添加数字字符串
}
int main() {
std::string result = "";
appendToString(result, "前缀:");
// 现在result就是"前缀:42"
// 相当于 result = "前缀:" + numToString(42);
}
```
**方法二:字符数组和指针**
```cpp
void intToCharStr(char* dest, int number) {
char str[10]; // 假设我们只考虑不超过9位的整数
sprintf(str, "%d", number); // 格式化输出数字到字符数组
// 拼接到dest字符串
for (size_t i = 0; i < strlen(str); ++i)
dest[i] = str[i];
dest[strlen(str)] = '\0'; // 结束字符串
}
int main() {
char target[50] = "前缀:";
intToCharStr(target + 6, 42); // 跳过前缀长度,从第7个位置开始写入
// 现在target就是"前缀:42"
}
```
阅读全文