1.4正整數轉化爲字符串

/********************************
*
*		c++程序設計實踐指導
*
*		1.4正整數轉化爲字符串
*
*********************************/

#include <iostream>
#include <string>
using namespace std;
class STR
{
	struct LinkNodeA		//單鏈表節點結構
	{
		short int data;
		LinkNodeA *next;
	};
	LinkNodeA *headA;
	struct LinkNodeB
	{
		char data;
		LinkNodeB *next;
	};
	LinkNodeB *headB;
public:
	STR(string x)		//構造函數,用x初始化num
	{
		headA = new LinkNodeA;
		headA->data = 0;
		headA->next = NULL;
		LinkNodeA *p, *q;
		q = headA;
		for(string::size_type i = 0; i < x.size(); i++)
		{
			p = new LinkNodeA;
			p->data = x[i] - 48;		//將string字符串中的字符逐個轉換爲int型,存入單鏈表1中
			p->next = NULL;
			q->next = p;
			q = p;
		}
	}
	void itoa();		//實現轉換功能
	void show()		//在屏幕顯示
	{
		LinkNodeA *p = headA->next;
		LinkNodeB *q = headB->next;
		cout << "下面是單鏈表1中各個節點存放的元素值,都是int型:" << endl;
		while(p->next)
		{
			cout << p->data;
			p = p->next;
		}
		cout << p->data;
		cout << endl;
		cout << "下面這個則是單鏈表2中各個節點存放的元素值,都是char型:" << endl;
		while(q->next)
		{
			cout << q->data;
			q = q->next;
		}
		cout << q->data;
		cout << endl;
	}
};
void STR::itoa()		//轉換
{
	headB = new LinkNodeB;
	headB->data = '0';
	headB->next = NULL;
	LinkNodeA *point = headA->next;
	LinkNodeB *p, *q;
	q = headB;
	while(point)
	{
		p = new LinkNodeB;
		p->data = point->data + 48;		//將int型字符轉化爲char型字符,與單鏈表1中元素一一對應存入單鏈表2中
		p->next = NULL;
		q->next = p;
		q = p;
		if(point->next)
			point = point->next;
		else break;
	}
}
int main()
{
	string b;		//string類型提供方便的輸入功能,可以輸入任意長度的字符串,也能夠是超長整數
	cin >> b;
	STR str(b);
	str.itoa();
	str.show();
	system("pause");
	return 0;
}
相關文章
相關標籤/搜索