跳到主要内容

字符串和格式化输入输出

字符串简介

C 语言没有专门用来存储字符串的标量类型,字符串都被存储在 char 类型的数组中。

数组末尾位置的字符\0这是空字符。C 中的字符串一定一空字符结束,这意味着数组的容量必须至少比待存储字符串中的字符数多 1。

数组是同类型数据元素的有序序列。

注意,字符串是派生类型。

char name[40]; // 声明一个长度为39的数组,第40位为/0(空字符)

scanf("%s", name); 输入 Joe Bane;name只会获取 Joe,不会获取空格和Bane。

strlen()函数

strlen()运算符,它以字节为单位给出对象大小。strlen()函数给出字符串中的字符长度。

#include <stdio.h>
#include <string.h>
#define Str "abc def gxxx."
int main(void)
{
char name[40] = "houfei";
printf("strlen(name) = %zd\n", name); // 6
printf("sizeof(name) = %zd\n", name); // 40
printf("strlen(Str) = %zd\n", name); // 13
printf("sizeof(Str) = %zd\n", name); // 14 把字符串末尾不可见的空字符也计算在内
}