\0
,这就是空字符串,C语言用它来标记字符串结束,空字符串不是数字0,他是非打印字符,其ASCII码是0。#include<stdio.h> #define PARISE "You are an extraordinary being" #pragma warning(disable:4996) int D16_1_praisel(void) { char name[40]; printf("What's your name?"); scanf("%s", name); printf("Hello,%s. %s\n", name, PARISE); return 0; }
运行显示:
git
\0
注意点:咱们在进行输入名字的时候是两个单词的时候,好比:Lebron James,那么
scanf()
会读取空格以前的第一个单词,不会读取后面的单词,也可使用方法fgets()
后面再介绍。github
sizeof
运算符,它以字节为单给出对象的大小。strlen()
函数给出字符串中的字符长度。由于1字节存储一个字符两者结果可能相同,但本质并非一种计算方式。#include<stdio.h> #include<string.h> /*提供strlen()函数的原型*/ #define PRAISE "You are an extraordinaty being." #pragma warning(disable:4996) int D16_2_praise2(void) { char name[40]; printf("What's your name?"); scanf("%s", name); printf("Hello,%s.%s\n", name, PRAISE); printf("Your name of %zd letters occupies %zd memory cells.\n", strlen(name), sizeof(name)); printf("The phrase of praise has %zd letters ", strlen(PRAISE)); printf("and occupise %zd memory cells.\n", sizeof PRAISE); return 0; }
运行显示:
数组
注意点:
(1)若是使用ANSI C以前的编译器,必需要移除这一行:#include<string.h>;以前的编译器使用的是strings.h这个头文件;
(2)C99和C11标准专门为sizeof运算符的返回类型特意添加了%zd
转换说明,对于函数strlen()
也一样适用。早期的C须要使用实际的返回类型(一般是unsigned或unsigned long)
(3)sizeof后面接括号的问题,若是是变量或者字面量,括号无关紧要;若是是类型则须要括号,这里推荐都使用括号为好。微信