在c语言中如何输入长度不确定的字符串

急急!!!!谢谢各位!!!

你可以这样做:

//文件名: array01.cpp
#include<iostream>
using namespace std;

int main()
{
int len;
cin>>len;
//用指针p指向new动态分配的长度为len*sizeof(int)的内存空间
int *p=new int[len];
...........
delete[] p;
return 0;
}

注意int *p=new int[len];这一句,你不能这样做:
int p[len];
C++编译器会报错说len的大小不能确定,因为用这种形式声明数组,数组的大小需要在编译时确定。而且这样也不行:
int p[]=new int[len];
编译器会说不能把int*型转化为int[]型,因为用new开辟了一段内存空间后会返回这段内存的首地址,所以要把这个地址赋给一个指针,所以要用int *p=new int[len];

array01.cpp实现了一个变长的一维数组,但是要养成一个好习惯,就是注意要注销指针p,使程序释放用new开辟的内存空间。

不过,如果你能够知道字符串的最大长度的话,最简单的办法就是直接将数组定义为最大长度。

参考资料:http://topic.csdn.net/t/20060116/14/4519192.html

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-04-23
#include<iostream>
#include<string> //直接用string这个类 很方便的啊
using namespace std;
int main()
{
string str;
cin>>str;
cout<<str<<endl;
}本回答被提问者和网友采纳
第2个回答  2007-03-10
我正在学习中,呵呵
相似回答