LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: AMD-K6

如何用 C 编写字符串的替换?

[复制链接]
发表于 2005-5-16 10:09:23 | 显示全部楼层
楼上的验证说明什么问题?
看不懂.....
回复 支持 反对

使用道具 举报

发表于 2005-5-16 11:33:10 | 显示全部楼层
Post by Tetris

#include <ctypes.h>


改成
#include <stddef.h>
就可以了
回复 支持 反对

使用道具 举报

发表于 2005-5-16 13:20:40 | 显示全部楼层
Post by Tetris
不对,试了一下:
#include <ctypes.h>
int main(void)
{
    size_t a;
}

编译不过,呵呵。ctypes.h是ANSI C的。

呵呵,ctype.h 这个名字与你的理解有偏差。你的理解是 C's type,而实际上是 Character's type
事实上,标准的头文件都是自举的:如果它需要某个类型,就一定会在它自身中定义这个类型,而不必再包含其他的头文件了。比如说,size_t 这个类型就至少在 stdlib.h、string.h 和 stddef.h 中有定义。

btw,是 ctype.h 吧?我这里把 ctypes.h 改成 ctype.h 编译可以通过啊。
回复 支持 反对

使用道具 举报

发表于 2005-5-16 16:19:42 | 显示全部楼层
Post by Tetris
说明一下,str是一个字符串,n为从str起可用的空间。
显然,n>=strlen(str)+1。
例如:
char str[100]="hello, world hello";
str_replace(str, 100, "world", "china");

请问我怎么知道从str起可用的空间是多少呢?n(只要大于某值)是随便指定的吗?不指定会发生什么情况?
回复 支持 反对

使用道具 举报

发表于 2005-5-16 18:14:09 | 显示全部楼层
Post by haohao_h
请问我怎么知道从str起可用的空间是多少呢?n(只要大于某值)是随便指定的吗?不指定会发生什么情况?

这就是 C 中的原则问题了:库函数只做好自己的工作,把决策权留给调用者。
回复 支持 反对

使用道具 举报

发表于 2005-5-16 19:34:09 | 显示全部楼层
Post by herberteuler
呵呵,ctype.h 这个名字与你的理解有偏差。你的理解是 C's type,而实际上是 Character's type
事实上,标准的头文件都是自举的:如果它需要某个类型,就一定会在它自身中定义这个类型,而不必再包含其他的头文件了。比如说,size_t 这个类型就至少在 stdlib.h、string.h 和 stddef.h 中有定义。

btw,是 ctype.h 吧?我这里把 ctypes.h 改成 ctype.h 编译可以通过啊。


呵呵,真的是我打错了-_-!!!
的确是stddef.h包含了所有标准C数据型类的定义,但为什么平时我们都用<sys/types.h>呢?
回复 支持 反对

使用道具 举报

发表于 2005-5-22 15:31:31 | 显示全部楼层
我用DEV-C++,include<ctype.h>编译上面的那个程序好像不行啊
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表