有关string的问题
#include <iostream>
#include <string>
using namespace std;
int main()
{void change(string &,string &);
string str1=" ",
str2=" ",
str3=" ";
//string str1,str2,str3;
char *p1=&str1[0],*p2=&str2[0],*p3=&str3[0];
cout<<"input three line:"<<endl;
gets(p1);
gets(p2);
gets(p3);
if(str1>str2)change(str1,str2);
if(str1>str3)change(str1,str3);
if(str2>str3)change(str2,str3);
cout<<endl<<"Now,the order is:"<<endl;
cout<<str1<<endl<<str2<<endl<<str3<<endl;
return 0;
}
void change(string &st1,string &st2) /* 交换两个字符串 */
{string st;
st=st1;st1=st2;st2=st;
}
为什么必须使用
string str1=" ",
str2=" ",
str3=" ";
使string初始化后才正确,如果使用string str1,str2,str3;不定义的话,在输入一行字符后会发生内存错误?string必须初始化吗?谢谢,请求回答