strlen()应该在头文件“string.h”下才能使用

但是这个程序:头文件没有string.h同样可以使用strlen()可以正确编译并得出结果,我只是想知道为什么???#include<stdio.h>voidfun(ch... 但是这个程序:头文件没有string.h 同样可以使用strlen()可以正确编译并得出结果,我只是想知道为什么???

#include <stdio.h>
void fun( char t[] )
{
char c;
int i, j;
for( i = strlen( t )-1; i; i-- )
for( j = 0; j < i; j++ )
if( t[j] > t[ j + 1 ] )
{
c = t[j];
t[j] = t[ j + 1 ];
t[j + 1 ] = c;
}
}

main()
{
char s[81];
printf( "\nPlease enter a character string: " );
gets( s );
printf( "\n\nBefore sorting:\n \"%s\"", s );
fun( s );
printf( "\nAfter sorting decendingly:\n \"%s\"", s );
}
我的没有报错啊,用的编译器是vc++6.0
展开
 我来答
Tidus_forever
2011-08-17 · TA获得超过4401个赞
知道大有可为答主
回答量:2782
采纳率:100%
帮助的人:1910万
展开全部
DEV C++ 下测试出错 strlen 未声明

也许跟编译环境有关吧 可能编译环境里自动包含了 string.h 就不会出错了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
黄孔云
2011-08-17 · TA获得超过549个赞
知道答主
回答量:117
采纳率:0%
帮助的人:75.4万
展开全部
看不同的编译器吧,比如VC++下面它会报警告但是能通过编译,应为编译器认为它是常用的头文件,所以自动添加了,更典型的一个头文件是stdio.h,这头文件在任何编译器下几乎是可以不用显示添加的
追问
没有报错,我将此程序重新又编译一次,编译出来的结果是正确的。
追答
不会报错,只有一个警告,如果警告都没有那可能就是你的编译器版本比较高了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tustnhs
2011-08-17 · TA获得超过1254个赞
知道小有建树答主
回答量:1084
采纳率:0%
帮助的人:704万
展开全部
VC6下也是报错的,没有把该包含的库包含的
errer信息
error C2065: 'strlen' : undeclared identifier
更多追问追答
追问
天,我的怎么没有报错---我就是用VC++6.0
追答
你再试一试吧,我这就是报错了
error C2065: 'strlen' : undeclared identifier
这个是报错的信息
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式