Untitled Document

五、（8分） 定义一个字符栈类Stack（包括类的实现)。数据成员包括一个存放字符的数组stck[ ]和一个栈指针tos。栈数组的尺寸由常量SIZE确定。栈的基本操作为Push（）和Pop（）。
const int SIZE=27;
class Stack
{
public:
Stack():tos(0){};
void Push(char ch);
char Pop();
private:
char stck[SIZE];
int tos;
};

void Stack::Push(char ch)
{
if(tos==SIZE)
cout<<"\nStack is full\n";
else{
stck[tos]=ch;tos++;
}
}

char Stack::Pop()
{
if(tos==0){
cout<<"\nStack is empty\n";
return 0;
}
tos--;
return stck[tos];
}

六、(10分)完成下面的函数，对有n个元素的数组a，使数组元素按逆序排列。
void inverse(int *a, int n)
{
}
int i,*p;
p=new int[n];

for(i=0;i<=n-1;i++)
p[i]=a[i];
for(i=0;i<=n-1;i++)
a[i]=p[n-i-1];
delete []p;

七、（12分）下面的函数统计子字符串substr在字符串str中出现的次数，如果substr在str中不出现，则返回值0。请完成该函数。
int str_count(char *substr, char *str)
{
}
int count=0;
char *pChar;

if(substr==NULL||str==NULL) return count;
while(*str!='\0'){
pChar=substr;
while(*pChar==*str){
pChar++;
if(*pChar=='\0'){
count++;break;
}
else str++;
}//Match while(*pCh...) statement
str++;
}//Match while(*str...) statement
return count;