Lỗi không hiển thị xâu

Anh chị giúp em câu này với. Em cho chạy code thì nó chỉ hiển thị xâu abcd chứ nó không hiện xâu sau khi em gọi đến hàm doichuhoa(). A/c xẹm hộ em lỗi ở đâu vs ạ. Em cảm ơn.

#include<iostream>
#include<string.h>
using namespace std;
class xau
{
	char *a; int n;
	public:
		xau()
		{
			n=0;a=NULL;
		}
		xau(char *s)    //khoi tao 1 xau tu 1 xau ky tu
		{
			int d=0;
			for(;s[d]!=NULL;d++)	
			{
				n=d+1;
			}
			a = new char[n];
			for(d=0;s[d]!=NULL;d++)
			{
				a=s;
			}					
		}
		void xemmh()
		{
			for(int i=0;i<n;i++)
			{
				cout<<a[i];
			}
			cout<<endl;
		}
		void doichuhoa()
		{
			for(int i=0;i<n;i++)
			{
				if((a[i] >= 'a')&&(a[i] <= 'z'))
				{
					int k = int(a[i]) - 32;
					a[i]=(char)k;
				}				
			}
		}	
};
main()
{
	xau x("abcd");
	x.xemmh();
	x.doichuhoa();
	x.xemmh();
}

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?