宽字符比较有关问题

宽字符比较问题以下函数,当我office_path传C:\\Test_ppt1.pptx进去后,为什么(_tcscmp(ppt_2003,temp_tem

宽字符比较问题
以下函数,当我office_path传"C:\\Test_ppt1.pptx"进去后,为什么(_tcscmp(ppt_2003,temp_temp) == 0) 不相等?


int  Bisencryypt::check_Office_version(TCHAR *office_path)//判断office版本
{
int num = 0;
TCHAR *temp = office_path;
TCHAR *ppt_2003 = _T(".ppt");
TCHAR *doc_2003 = _T(".doc");
TCHAR *xls_2003 = _T(".xls");
TCHAR *pdf = _T(".pdf");
while(*temp != '\0')//
{
++temp;
}
TCHAR *recond = --temp; //减去\0
TCHAR temp_temp[4] = {'\0'};
if(*recond == 'x')
{
--temp;
num += 10; //07加10
}
for(int i = 3; i >= 0; i--)
{
temp_temp[i] = *temp;
--temp;
}
//为什么比较没成立???
if(_tcscmp(ppt_2003,temp_temp) == 0)//07-ppt 11,03-ppt 1
{
num += 1;
return num;
}

if(_tcscmp(doc_2003,temp_temp) == 0)//07-doc 12
{
                num += 2;
        return num;
}

if(_tcscmp(xls_2003,temp_temp) == 0)//07-xls 13
{
                num += 3;
        return num;
}

if(_tcscmp(pdf,temp_temp) == 0)     //pdf - 14
{
                num += 4;
}

return num;
}



[解决办法]
TCHAR temp_temp[4] = {'\0'}; 是4个字符的空间,
for(int i = 3; i >= 0; i--)
    {
        temp_temp[i] = *temp;
        --temp;
    }
你向该空间写入了4个字符 .ppt,也就是说temp_temp 没有结束符\0,比较的时候当然不相等