用C++编程实现两字符串连接的示例代码:
#include <iostream>
using namespace std;
int main() {
const int MAXLEN = 100;
char str1[MAXLEN], str2[MAXLEN], str3[MAXLEN * 2];
int len1 = 0, len2 = 0, len3 = 0;
cout << "请输入第一个字符串:";
cin.getline(str1, MAXLEN);
cout << "请输入第二个字符串:";
cin.getline(str2, MAXLEN);
// 计算第一个字符串的长度
while (str1[len1] != '\0') {
len1++;
}
// 计算第二个字符串的长度
while (str2[len2] != '\0') {
len2++;
}
// 将第一个字符串复制到 str3 中
for (int i = 0; i < len1; i++) {
str3[len3++] = str1[i];
}
// 将第二个字符串复制到 str3 中
for (int i = 0; i < len2; i++) {
str3[len3++] = str2[i];
}
// 在 str3 的末尾添加结束符号
str3[len3] = '\0';
// 输出结果
cout << "连接后的字符串为:" << str3 << endl;
return 0;
}
该程序使用字符数组保存字符串,并且没有使用系统函数。它首先获取用户输入的两个字符串,然后计算出它们的长度。接着,它将第一个字符串复制到一个新的字符数组 str3 中,然后将第二个字符串也复制到 str3 中。最后,将结束符号添加到 str3 的末尾,并输出连接后的字符串。
望采纳
普通函数(非成员函数);静态成员函数;内联函数;构造函数;友元函数
1.为什么C++不支持普通函数为虚函数?
普通函数(非成员函数)只能被overload,不能被override,声明为虚函数也没有什么意思,因此编译器会在编译时邦定函数。
2.为什么C++不支持构造函数为虚函数?
2.1含有虚函数的类包含一个虚指针,虚指针存储在对象的内存空间的。如果构造函数是虚的,就需要通过虚指针来调用虚函数表虚函数,可是对象还没有实例化,也就是内存空间还没有,就没有虚指针,所以构造函数不能是虚函数。
2.2 虚函数的作用在于通过父类的指针或者引用来调用它的时候能够变成调用子类的那个成员函数。而构造函数是在创建对象时自动调用的,不可能通过父类的指针或者引用去调用,因此也就规定构造函数不能是虚函数。
3.为什么C++不支持内联成员函数为虚函数?
其实很简单,那内联函数就是为了在代码中直接展开,减少函数调用花费的代价,虚函数是为了在继承后对象能够准确的执行自己的动作,这是不可能统一的。(再说了,inline函数在编译时被展开,虚函数在运行时才能动态的邦定函数)
4.为什么C++不支持静态成员函数为虚函数?
这也很简单,静态成员函数对于每个类来说只有一份代码,所有的对象都共享这一份代码,他不归某个具体对象所有,所以他也没有要动态邦定的必要性。
5.为什么C++不支持友元函数为虚函数?
因为C++不支持友元函数的继承,对于没有继承特性的函数没有虚函数的说法。