怎么将字符串转换为栈的元素输出

C++语言 码拜 8年前 (2016-04-26) 1137次浏览
怎么将Stack st3(“100,200,350,4000,80,66”);
转换为栈的元素66  80  4000  350  200  100?
解决方案

100

用strtok将每个数字都提取出来存储,然后重载输出运算符进行输出
参考:

#include<iostream>
using namespace std;
typedef unsigned long Item;
class Stack
{
public:
	Stack(char *str)
	{
		size = MAX;
		char buffer[64] = {0}, *p;
		strcpy(buffer, str);
		top = 0;
		pitems = new Item[MAX];
		pitems[top++] = atol(strtok(buffer, ","));
		while((p = strtok(NULL,  ",")))
			pitems[top++] = atol(p); 

	}
	friend ostream& operator<< (ostream & stream,Stack &st);
private:
	enum {MAX = 10}; // 定义常量MAX
	Item * pitems; // 存储栈元素
	int size; // 栈的大小
	int top; // 栈顶元素的下标
};
ostream& operator<< (ostream &stream,Stack &st)
{
	for(int i = st.top - 1; i >= 0; i--)
		stream << st.pitems[i] << " "; 
	return stream;
}
int main(void)
{
	Stack st3("100,200,350,4000,80,66");
	cout << st3;
}

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明怎么将字符串转换为栈的元素输出
喜欢 (0)
[1034331897@qq.com]
分享 (0)