background image

  buffer1.SaveString("Microsoft");
  printf(buffer1.GetBuffer());
}
主要改正 SaveString 函数
void SaveString(const char* pText) const
{
strcpy(m_pBuffer, pText);
}
改为
void SaveString(const char* pText) 1
{
Allocte(strlen(pText)+1); 
2
strcpy(m_pBuffer, pText);
}
原因:
( 1  

) const 成员 函数表示 不会修改 数据成员 ,而 SaveString 做不到, 去掉 const 


2m_pBuffer 指向 NULL,必须用 Allocte 分配空间才能赋值。
3  

) 另外需要将 Allocte 成员函数声明为私有成员函数更符合实际

2

、下来程序想打印 Welcome MSR Asia”,改正错误

#include <stdio.h>
#include <string.h>
char * GetName (void)
{
  //To return “MSR Asia” String
  char name[]="MSR Asia";
  return name;
}
void main(int argc, char* argv[])
{
  char name[32];
  //Fill in zeros into name
  for(int i=0;i<=32;i++)
  {
    name[i]='\0';
  }
  //copy “Welcome” to name
  name="Welcome";
  //Append a blank char
  name[8]=" ";
  //Append string to name
  strcat(name,GetName());
  //print out
  printf(name);