|
![]() | 作者: sniper167 [sniper167]
![]() |
登录 |
在一个文件里面查找一个字符串,文件是按字母来排序的,如: a A battery a la a la carte A level ………… zymotic zymurgy zzz,z-z-z- 用二分法查找,用getword[index]取得在文件里面位置为index的字符串,当把这个字符串和输入字符串str比较时,如果用strcmp(getword[0], str), 很容易出问题,因为str为“A battery”、“A level”等字符串时,他们比getword[0]都还小,也就结束查找了。当查找这种大小写混杂的字符串时,也就找不到了。 请问怎么解决这个问题?偶在别的公司提供的平台上做,一些标准C的库都没移植全,比如strcmpi/stricmp 这些函数都用不了,无比郁闷中 如果把取出来的字符串和输入的字符串全转换成大写或者小写再比较的话,可能找到的不是完全匹配的字符串,因为文件里面可能有AAA,aaa这样的字符串。 |
地主 发表时间: 06-05-17 09:56 |
![]() | 回复: sniper167 [sniper167] ![]() |
登录 |
这个版现在之冷清。。。 原来的几个伙计呢 ![]() 还是自己顶个 问题都解决了。。。 |
B1层 发表时间: 06-05-18 21:21 |
![]() | 回复: SysHu0teR [syshunter] ![]() |
登录 |
strstr(strlwr(getword[index]),strlwr(str));不行? 不对,还是不怎么明白你的意思。 “ 很容易出问题,因为str为“A battery”、“A level”等字符串时,他们比getword[0]都还小,也就结束查找了。当查找这种大小写混杂的字符串时,也就找不到了。 ” 和 “如果把取出来的字符串和输入的字符串全转换成大写或者小写再比较的话,可能找到的不是完全匹配的字符串,因为文件里面可能有AAA,aaa这样的字符串。” 看着有点矛盾 |
B2层 发表时间: 06-05-27 23:00 |
![]() | 回复: sniper167 [sniper167] ![]() |
登录 |
楼上这样的方法有可能是不匹配的 比如 AAaa 跟 aaAA strstr(strlwr(getword[index]),strlwr(str));比较出来是相等的 a A battery a la a la carte A level ………… zymotic zymurgy zzz,z-z-z- 看上面的文件格式 呵呵 |
B3层 发表时间: 06-05-31 10:12 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号