一、strlen和sizeof解析
strlen和sizeof都是用来测量长度,单位为字节数,但是两者有着很大的不同;
strlen用法:
int len=strlen("abc");//strlen=string length 此函数需要头文件#include<string.h>
printf("%d\n",len);//结果为3 不算\0
strlen只能用来测字符串的字节数,而且不包含结束字符\0.
转义字符算一个
printf("%d\n",strlen("c:\test\328\test.c"));//结果是14,\t算一个,\32算一个不包含8
sizeof用法:
printf("%d",sizeof(char))//结果是1
#include<stdio.h>;
int main()
{
int a = 888;
double b = 888;
int c[8] = { 8,8,8 };
printf("%d\n", sizeof(a));
printf("%d\n", sizeof(b));
printf("%d", sizeof(c));
return 0;
}
结果是
4
8
32
由第三个结果可以看出sizeof测量的是声明的实际长度,由第一个和第二个的结果可以看出虽然给予的常量是三个字节,但结果仍然是变量类型的长度
补充,若sizeof测量字符串时会算上\0
printf("%d", sizeof("abcd"));//结果是5
二、转义字符
1 .以前的版本 ??)会变成 ] 现在不会了
printf("%c",''');//会报错
printf("%c", '\'');//成立
printf("%s","'");//成立
其他同理
2.
\ddd:表示将这个八进制数转换成对应十进制ASCII码的字符 (A的ASCII码为65 a--97 0--48)
\xdd:表示将这个十六进制数转换成对应十进制ASCII码的字符
printf("%c\n", '\130');//结果是X,X的ASCII码值为88
printf("%d\n",strlen("c:\test\328\test.c"));//结果是14,\t算一个,\32算一个不包含8
三、选择语句
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>;
int main()
{
int input = 0;
printf("你的性别是? 男输入1,女输入0\n");
scanf("%d", &input);
if (input == 1) {
printf("帅哥好\n");
}
else {
printf("美女好\n");
}
}