U-Boot 发表于 2007-10-8 22:24

C语言, 求教!

一个C语言菜鸟问题,请各位指教。

我要检测一个字符串是否由规定的祖母按固定的顺序组成(字母大小写不限),
如: BSF, Bsf, BSf, bSF, bsF, bsf这些组合都是符合要求的,而 SFB, BFS等是不符合要求的, 请问有现成的函数可以使用吗?如果没有函数可以套用,有什么好的方法呢?

先谢谢了!

瑞士军刀 发表于 2007-10-8 22:33

把原题发出来看看....

U-Boot 发表于 2007-10-9 09:10

回复 #2 瑞士军刀 的帖子

题目是这样的,用c编程来检查一个文件里的字符串是否符合要求, 这些字符串是汇编语言的指令, 虽然总共的汇编指令只有30几条, 但编译器允许这些指令大小写,只要字母的组合顺序不变就是合法的。 本来想给这30几条指令建立一个库,可是如果字母大小写都合法,那组合方式就太多了。 我想应该有什么函数可以检测在忽略字母大小写的情况下字符串是否相同, 如果没有现成的函数可以套用,只好自己编一个函数来实现类似的功能了。

因为本人学c时间不长,对c函数的了解不多,特向大家请教。

cmh 发表于 2007-10-9 12:16

_strnicmp()

忽略大小写比较两个字符串

并非如此 发表于 2007-10-9 13:12

楼上的函数不是c的标准函数吧,写一个转换大小写的函数,就解决问题了。
网上的例子就多了去了。

adlb 发表于 2007-10-9 13:51

int strncasecmp(const char *s1, const *s2, size_t n)
from <string.h>

cmh 发表于 2007-10-9 13:53

原帖由 并非如此 于 2007-10-9 14:12 发表 http://www.dolc.de/forum/images/common/back.gif
楼上的函数不是c的标准函数吧,写一个转换大小写的函数,就解决问题了。
网上的例子就多了去了。

Turbo C的标准函数名前面没有那个下划线. MS的库函数里面最近把那个没下划线的去掉了. 其他平台的C库里面还没用到过, 不知道有没有

并非如此 发表于 2007-10-9 16:02

一般的标准已ansi c90为准(或者c99)。

[ 本帖最后由 并非如此 于 2007-10-9 17:05 编辑 ]

cmh 发表于 2007-10-9 18:35

原帖由 并非如此 于 2007-10-9 17:02 发表 http://www.dolc.de/forum/images/common/back.gif
一般的标准已ansi c90为准(或者c99)。

MS的库函数虽说不标准,但别人开发了这么大一个库在那,有现成的干什么不用呢。当然如果需要多平台编译的也就没办法用了

U-Boot 发表于 2007-10-9 22:08

多谢各位回复, 我自己编了一个简单的程序,可以实现把字符串变换成小写。

#include <stdio.h>
#include<ctype.h>

int main(void)   
{   
char   s[]="dKDSALJA831841DFDAl" ;
int i;   
printf("beforetolower()   :   %s\n",s);   

for(i=0;i<sizeof(s);i++)   
s=tolower(s);   
printf("after   tolower()   :   %s\n",s);   

return 0;
}
页: [1] 2
查看完整版本: C语言, 求教!