字符串和格式化输入/输出

  • 字符串
  • char类型数组和null字符
  • 使用字符串
  • 字符串和字符
  • 获取字符串长度
  • 常量


字符串

字符串(character string)是一个或多个字符的序列

"asdfghjkl"

char类型数组和null字符

C语言没有专门用于存储字符串的变量类型,字符串都被存储在char类型的数组中。数组由连续的存储单元组成,字符串中的字符被存储在相邻的存储单元中,每个单元存储一个字符。

数组末尾位置的字符\0。是空字符(nullcharacter),C语言用它标记字符串的结束。


意味着数组的容量必须至少比待存储字符串中的字符数多1


C语言 字符串详解_#include

使用字符串

#include <stdio.h>
int main()
{
char name[40];
printf("输入你的名字");
scanf("%s",name);
printf("你好,%s",name);
return 0;
}

C语言 字符串详解_c语言_02


scanf()只读取了xiaowang kkk中的xiaowang ,它在遇到第1个空白(空格、制表符或换行符)时就不再读取输入


字符串和字符


字符串"x"与字符’x’
'x’是基本类型(char),而"x"是派生类型(char数组)
"x"实际上由两个字符组成:'x’和空字符\0


获取字符串长度

strlen()函数给出字符串中的字符长度

sizeof()获取对象的大小

#include <stdio.h>
#include <string.h>
int main()
{
char name[40];
char s[] = "asdfghjkl";
printf("输入你的名字");
scanf("%s",name);
printf("你好,%s\n",name);
printf("name%zd\n",sizeof(name));
printf("name%zd\n",strlen(name));
printf("s:%zd\n",sizeof(s));
printf("s:%zd\n",strlen(s));
return 0;
}

C语言 字符串详解_数组_03

常量


​#define NAME value​


#include <stdio.h>
#define pi 3.1415
int main()
{
printf("%f",pi*5);
}

C语言 字符串详解_数组_04

参考资料《C Primer Plus》