标准C语言<string.h>中的strlen() 与 VC++ 6.0 中的strlen()

本文探讨了标准C语言中&lt;string.h&gt;头文件中strlen()函数返回值的数据类型问题。在标准C语言中,strlen()函数返回的是unsigned int类型,在VC++6.0环境中,若包含<string.h>则返回unsigned int类型,否则返回int类型。文章通过两个示例程序展示了不同的返回类型如何影响比较操作的结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

标准C语言中的<string.h>中的strlen()返回值为unsigned int型:

    size_t  strlen(chonst char* p);//p 的长度不计结束符。typedef unsigned int size_t; 也就是说size_t 就是unsigned int 类型。

而VC++6.0 中的strlen()返回值为int型:


用VC++ 6.0 编程时,如果加了#include<string.h>则调用标准C语言中<string.h>中的strlen(),返回unsigned int型。如果未添加#include<string.h>则调用 VC++6.0的strlen(),返回int型。


/*习题2.26
开发环境VC++6.0*/
#include<stdio.h>
#include<string.h>

int strLonger(char*,char*);

void main(){
	char *s = "d";
	char *t = "Id";

	printf("%d\n",strLonger(s,t));
}

int strLonger(char *s, char *t){
	return strlen(s) - strlen(t) > 0; //在C语言中,当一个无符号数和一个有符号数进行比较运算时,有符号数会被隐含地转换成无符号数,并假设这两个数都是非负数,然后进行比较运算。
}
//输出结果为 1



#include<stdio.h>

int strLonger(char*,char*);

void main(){
	char *s = "d";
	char *t = "Id";

	printf("%d\n",strLonger(s,t));
}

int strLonger(char *s, char *t){
	return strlen(s) - strlen(t) > 0;
}
//输出结果为 0









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值