c++ 输入不定长的字符数组
·
OJ题目中总会出现给定一个字符串,删除其中某些字符的题目,但输入不会给字符串的长度。
网上有的方法是先定义一个超大的数组,然后用这个大数组来储存数据,但我不喜欢这个方法,不但浪费空间,如果题目给定字符串大于这个大数组,还会报错
当然,也有用vector的,但是vector毕竟不是自己写实现的,用起来总有一点心虚
我一般用的方法是string 转 char数组,话不多说,上代码
class ArrayTest
{
private:
char *a;
int n;
public:
ArrayTest(void);
~ArrayTest(void);
void intArray(std::string s);
std::string getString();
//void removeSame(char x);
void output();
};
void ArrayTest::intArray(std::string s)
{
n=s.length();
a=new char[n];
for(int i=0;i<n;i++) a[i]=s[i];
}
关于string的输入,我用的是getline,这样空格也能输入
std::string ArrayTest::getString()
{
std::string str;
getline(std::cin,str);
return str;
}
这个方法好处在于,使用的空间不大,给出的字符串多长,就使用多少空间,同时,空格也能输入进去。
更多推荐
所有评论(0)