【问题描述】填空完成 String 对象的输入和输出(输入字符串长度不超过100)
【样例输入】
hello
【样例输出】
hello
(最后一行为string对象,验证没有改变)
↑是问题
部分应该怎么改呀
为什么输入后一直结束不了
↓是我写的代码,只能改变
#include <iostream>
//#include <string.h>//特意注释掉的,纯手工实现
using namespace std;
class String {
public:
String()
{p=NULL; len=0;}
String(char *str)
{p=str;}
void display()
{cout<<p<<endl;}
//可以改动的部分↓
friend istream& operator>>(istream& input,String s1)
{
char str[100];
s1.p=new char[100];
int i=0;
do
{
cin>>str[i];
i++;
}while (str[i-1]!='\n'&&i<100);
for(int j=0;j<i;j++)
{
s1.p[j]=str[j];
}
s1.p[i]='\0';
return input;
}
friend ostream& operator<<(ostream& output,String&s1)
{
cout<<s1.p;
return output;
}
//可以改动的部分↑
private:
char *p;
int len;
};
int main() {
String string1;
cin>>string1;
cout<<string1;
return 0;
}