首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

这段代码错在哪?该怎么解决

2012-02-25 
这段代码错在哪?intCIni::FindIndex(char*Index){intp0intnstrlen(Index)char*strnewchar[n]memset(

这段代码错在哪?
int   CIni::FindIndex(   char*   Index   )
{
int   p=0;
int   n   =   strlen(   Index   );
char*   str   =   new   char[n];
memset(   str,   0,   n   );

//遍历表m_Index
for(   int   i=0;   i <m_iNum;   i++   )
{
p   =   m_Index[i]+1;

for(   int   j=0;   j <n;   j++)
{
str[j]   =   m_Data[p];
p++;
}

//找到Index
if(   strcmp(   str,   Index   )   ==   0   &&
m_Data[p]   ==   '] '   )
{
return   m_Index[i];
}
}
//在这里写没有找到Index出现的消息
return   -1;
}

弄了半天不知道哪里不对,
当我传进的参数Index是ccc时,我单步调试后明明看到str是ccc和Index相等
为什么就是不执行return   m_Index[i];啊

[解决办法]
strcmp() 比较的两个字符串必须是 '\0 '结尾的!

int n = strlen( Index );
char* str = new char[n];
memset( str, 0, n );

==>
char* str = new char[n+1];
str[n] = '\0 ';


热点排行