c - 字符串长度未正确显示
问题描述
所以我在这里有3个代码,
在第一个我还没有初始化字符串!strlen 在 ans 中显示“3”
在第二个中,我用 3 个字符对其进行了初始化,但仍然与“3”相同
在第三我用4个字符初始化它,输出是“4”
对不起,伙计们,如果它太明显了,但我是新手,很困惑为什么它在第一个代码的输出中显示“3”。
//1st
#include<stdio.h>
#include<string.h>
int main()
{
char y[20];
printf("%d",strlen(y));
return 0;
}
//2nd
#include<stdio.h>
#include<string.h>
int main()
{
char y[20]="yas";
printf("%d",strlen(y));
return 0;
}
//3rd
#include<stdio.h>
#include<string.h>
int main()
{
char y[20]="asds";
printf("%d",strlen(y));
return 0;
}
解决方案
您在 1) 案例中看到的是未定义的行为。因为y
未初始化。
同样strlen
返回size_t
,打印其返回值的正确格式是:
printf("strlen(y) = (%zu)\n",strlen(y));
推荐阅读
- android - 我需要在哪里添加 Toast?
- python - Django Ajax Likes 工作不正确:jQuery 的问题
- python - 如何从下拉菜单中选择
- python - 修复 ValueError:形状 (1,2) 和 (4,4) 未对齐:python 中的 2 (dim 1) != 4 (dim 0)
- javascript - 两个用于滑动相同 div 但方式不同的按钮(从右到左和从左到右)
- excel - 每次我找到搜索结果时为每个 excel 行着色
- c - 为什么我的编译器不想编译这段代码?
- javascript - JavaScript:创建返回函数的函数,该函数返回具有 getter / setter 功能的输出
- docker - 多阶段 Dockerfile
- excel - 使用公式计算 Excel 中的连续列数据实例