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;
}

这个方法好处在于,使用的空间不大,给出的字符串多长,就使用多少空间,同时,空格也能输入进去。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐