首页 > 解决方案 > sizeof 不返回输入的实际长度

问题描述

我试图在我的程序中测试 sizeof 但它不起作用。

char toFind[100];
fgets(toFind, sizeof(toFind), stdin);
printf(" %i", sizeof(toFind));

我输入的内容打印出 100。我做错了什么。

标签: arrayscc-stringssizeofstrlen

解决方案


toFind是一个 100 个字符的数组。每个字符为 1 个字节。toFind100 字节也是如此。

因此sizeof(toFind),它告诉你有多少字节toFind,是 100。没有问题。sizeof工作正常。

您可能对strlen(toFind)哪个告诉您第一个 0 字节之前有多少字节感兴趣。由于fgets在它读取的字符之后放置了一个 0 字节,这告诉您读取了多少个字符fgets


推荐阅读