
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 展开
#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 展开
3个回答
展开全部
DEV C++ 下测试出错 strlen 未声明
也许跟编译环境有关吧 可能编译环境里自动包含了 string.h 就不会出错了
也许跟编译环境有关吧 可能编译环境里自动包含了 string.h 就不会出错了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看不同的编译器吧,比如VC++下面它会报警告但是能通过编译,应为编译器认为它是常用的头文件,所以自动添加了,更典型的一个头文件是stdio.h,这头文件在任何编译器下几乎是可以不用显示添加的
追问
没有报错,我将此程序重新又编译一次,编译出来的结果是正确的。
追答
不会报错,只有一个警告,如果警告都没有那可能就是你的编译器版本比较高了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
VC6下也是报错的,没有把该包含的库包含的
errer信息
error C2065: 'strlen' : undeclared identifier
errer信息
error C2065: 'strlen' : undeclared identifier
更多追问追答
追问
天,我的怎么没有报错---我就是用VC++6.0
追答
你再试一试吧,我这就是报错了
error C2065: 'strlen' : undeclared identifier
这个是报错的信息
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询