Chinaunix

标题: 使用if else if嵌套时候遇到的一个奇怪问题. [打印本页]

作者: zhonzn    时间: 2006-09-28 17:39
标题: 使用if else if嵌套时候遇到的一个奇怪问题.

  1. if(strstr(readbuf,"RecordType")!=NULL) ReplaceString(readbuf, "AAAAA", Out.RecordType);
  2. else if(strstr(readbuf,"ChainCode")!=NULL) ReplaceString(readbuf, "AAAAA", Out.ChainCode);
  3. else if(strstr(readbuf,"PropertyCode")!=NULL) ReplaceString(readbuf, "AAAAA", Out.PropertyCode);
  4. else if(strstr(readbuf,"SequenceNumber")!=NULL) ReplaceString(readbuf, "AAAAA", Out.SequenceNumber);
  5. else if(strstr(readbuf,"ResvNameID")!=NULL) ReplaceString(readbuf, "AAAAA", Out.ResvNameID);
  6. else if(strstr(readbuf,"AuthType")!=NULL) ReplaceString(readbuf, "AAAAA", Out.AuthType);
  7.                         
  8. 下面还有30多个else if
复制代码


当执行到第24条以后的if else语句的时候ReplaceString传入的第三个变量值为空,想不通为什么?谁知道什么原因造成的?if else if嵌套层数是不是有限制? 执行到24条之后的ReplaceString都能执行,只是出现无法传入参数数值的问题.

[ 本帖最后由 zhonzn 于 2006-9-28 17:40 编辑 ]
作者: langue    时间: 2006-09-28 18:10
代码不整齐,太长,用缩进看看
作者: zhonzn    时间: 2006-09-28 18:22
看前两条就可以了,后面的结构都是一样的。
作者: langue    时间: 2006-09-28 18:50
原帖由 phus 于 2006-9-28 18:35 发表
靠, 这种代码只能用丑陋来形容了。
楼主你该这么办
const char *keywords[] = {"RecordType", "ChainCode", ..., NULL};


技巧。好主意。
作者: zhonzn    时间: 2006-09-28 19:59
代码是随手写的,最终肯定不能用了,但是我奇怪怎么会出现这样的问题.
作者: cythier    时间: 2006-09-28 20:58
你没把下面的全部列出来,哪知道是不是你哪边写错什么东西了呢
作者: zhonzn    时间: 2006-09-28 22:10
原帖由 cythier 于 2006-9-28 20:58 发表
你没把下面的全部列出来,哪知道是不是你哪边写错什么东西了呢



哦,谢谢提醒,果然是写错了一个地方,有个关键字被另外一个包含了,所以出现问题,谢谢大家.




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2