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