读书人

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

发布时间: 2012-02-25 10:01:48 作者: rapoo

这段代码错在哪?
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 ';


读书人网 >C++

热点推荐