c++.net编程中字符串比较引起的问题
在定义了一个结构,里面用了字符串类型的话,如下:
typedef struct _DeviceInf
{
int nDeviceId;//装置ID
char chDeviceName[201];//装置名
char chBreakBh[WORDDOC_NAMESTRING_LEN];//开关编号
WORD DetectOffLockCode;//检分锁编码
char chDetectOffBreakBh[WORDDOC_NAMESTRING_LEN];//检分开关编号
WORD DetectOnLockCode;//检合锁编码
char chDetectOnBreakBh[WORDDOC_NAMESTRING_LEN];//检合开关编号
WORD YanDianLockCode;//验电锁编码
char chYanDianBreakBh[WORDDOC_NAMESTRING_LEN];//验电开关编号
int LockTypeID;//锁类型号
}DeviceInf;
如果你申请了一个此结构的变量,如DeviceInf* pDeviceInf =new DeviceInf;。
用此机构变量去比较一个字符串,如if(pDeviceInf->chDetectOffBreakBh != “NULL_STR”),编译的时候是没有语法错误的,而在运行的时候,则会出现此变量pDeviceInf数据被破坏的情况,请注意。要比较字符串应该使用_StrCmp( )函数,或者把pDeviceInf->chDetectOffBreakBh赋值给一个CString变量然后进行比较,这样就没问题了。
1 条评论 2007年12月28日 星期五 zmouse 1424次阅读