用codeblock编写一个程序,将两个字符串链接起来,不用strcat函数。
时间: 2024-11-25 13:16:02 浏览: 6
当然可以。在C++中,我们可以使用`+`运算符或者`append()`函数(如果使用的不是标准库,例如`std::string`,而是自定义字符串类型)来连接两个字符串。这里是一个简单的例子,使用`std::string`:
```cpp
#include <iostream>
#include <string>
// 自己实现的简单字符串类型,如果没有内置的std::string可用
class CustomString {
public:
CustomString(const char* str) : data_(new char[strlen(str) + 1]) {
std::strcpy(data_, str);
}
~CustomString() { delete[] data_; }
// 添加到末尾的方法
void append(const CustomString& other) {
size_t length = strlen(data_) - 1; // 去掉结尾的'\0'
if (other.length()) {
data_[length] = '\0'; // 如果当前已有数据,则添加分隔符
std::strcat(data_ + 1, other.data()); // 不用strcat直接拼接
}
}
private:
char* data_;
size_t length() const { return strlen(data_) - 1; } // 避免计算尾部'\0'的长度
};
int main() {
CustomString str1("Hello, ");
CustomString str2("World!");
// 使用append方法连接
str1.append(str2);
std::cout << "Combined string: " << str1.data() << std::endl;
return 0;
}
```
在这个例子中,我们创建了一个名为`CustomString`的简单类,它有一个自定义的构造函数用于初始化字符串,以及一个`append`方法用于合并其他字符串。注意,为了使`append`方法更高效,我们没有使用`strcat`函数,而是手动操作了`data_`指针。
阅读全文