C语言 size_t

#include <stdio.h>

int main(void)
{
int i, j;
char str1[101], str2[101];

printf("Please input a string: ");
gets(str1);

for (i = 0, j = 0; str1[i] != '\0'; i++)//中间改成i <strlen(str),前面也加了include <string.h>为什么考试系统结果是0分,然后我改成(size_t)i <strlen(str1)就对了.为什么呢
{
if (str1[i] != '*')
{
str2[j] = str1[i];
j++;
}
}
str2[j] = '\0';
puts(str2);

return 0;
}

我再次认真的看了下 size_t的使用,
它是为了使程序可以跨平台,是代码具体较好的可移植性。
size_t在32位系统中占4个字节,而在64位系统占8个字节。
我想这是 系统判断其不正确的原因所在吧。
给出(size_t)i<strlen(str1)那么就通类型比较了,就不存在问题了。
而int类型的i和strlen(str1)返回类型是 size_t在不同的操作系统可能就不一样。
所以,系统检测出错。
但是,我不知道为什么,改成 i< (int)strlen(str1)就还是不行呢?
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-03-03
关键要清楚strlen()返回的是unsigned类型,与int型进行比较会有一个转换过成。size_t也是unsigned类型的,两者比较就没问题了。

size_t详细解释
size_t在C语言中是一个专门用于表示大小的整型数据类型。它通常通过`sizeof(XXX)`操作来获取,这个操作会返回一个size_t类型的结果。这种类型的数据可以进行加减乘除运算,并能转化为int类型并赋值给int类型的变量。与之类似的还有wchar_t和ptrdiff_t,分别用于表示宽字符类型和指针之间的距离类型。通常...

C语言 size_t index=0 语句中 size_t是什么?怎么用 请详解 !!!
http:\/\/zh.cppreference.com\/w\/c\/types\/size_t size_t是定义于stddef.h stdio.h stdlib.h string.h time.h wchar.h之中的一个无符号整数类型。它也是sizeof和_Alignof运算符的结果类型。一般size_t指代的是对象大小或者对象数量,它同时也是表示数组下标最安全的类型。

C语言size_t中的_t是什么意思
size_t中的t是type(类型)的意思。size_t的意思是size of type,即某种类型的大小(字节数)。

c语言函数void *malloc(size_t size)中size_t是什么?
size_t是C\/C++系统定义的一个数据类型,是无符号整型,和unsigned int的效果一样。C\/C++还允许程序员自行定义数据类型,常见的结构体、联合体就是其中之一;且有人还喜欢自己的类型标识符,如有人把unsigned char定义成自己喜欢的CHAR,当写CHAR ch;时实际就是写了unsigned char ch;。看,写起来也...

c语言size_t size = sizeof(long long);
sizeof(long long)返回long long类型的宽度,即long long类型的变量占用的字节数。

c语言gcc无法识别size_t
c语言gcc无法识别size_t具体原因如下:1、提示缺少分号和括号,cJSON.h文件没有修改。2、使用的编译器语法检查不完善,版本过低导致无法识别。3、缺少了size_t的定义,size_t的定义在string.h头文件中存在。

C语言size_t和unsigned int 有什么区别
size_t是一个结构体,在C语言中,结构体可以算作自定义的一种类型。结构体中可以有其他结构体类型,也可以有固有类型。unsigned int属于系统自带的类型,int是整形,unsigned int是无符号整形

c语言是否数组里面的i都用size_t定义? 什么时候用int i=0:?
size_t其实是自定义类型, 一般是unsigned int.这里用这个, 是为了sizeof的结果为size_t类型, 使用相同类型避免比较的时候编译出警告。大多数时候, 数组下标都是用int定义的。

size_t的详细解释
size_t在C语言中就有了。它是一种“整型”类型,里面保存的是一个整数,就像int, long那样。这种整数用来记录一个大小(size)。size_t的全称应该是size type,就是说“一种用来记录大小的数据类型”。通常我们用sizeof(XXX)操作,这个操作所得到的结果就是size_t类型。因为size_t类型的数据其实是...

size_t这个类型的意义是什么?
size_t 类型在C和C++中至关重要,它用于表示对象的大小,特别是在内存管理和字符串处理等场景中。它的引入旨在提高代码的可移植性、有效性和可读性。在标准C库中,如malloc和memcpy等函数,使用size_t作为参数和返回值类型,以确保适应不同平台上的数据大小差异。此外,size_t还经常出现在C++标准库中...

相似回答