【笔记】C语言的字符数组与字符串

前言

C语言的字符数组与字符串学习笔记

定义字符数组

1
char 变量名[数组长度];

字符数组初始化

  • 最后一个字符需要是'\0'0才可以组成字符串
1
2
3
char 变量名[数组长度] = { '', '', ..., '\0' };

char 变量名[数组长度] = { '', '', ..., 0 };

省略最后一位

  • 省略最后一位默认为0
1
char 变量名[数组长度] = { '', '', ... };

定义字符串

  • 实际上是简化字符数组的初始化
1
char 变量名[数组长度] = "";

初始化为默认值

1
char 变量名[数组长度] = { 0 };

字符串输入

  • 从控制台输入一个字符串

scanf 函数

  • scanf函数会认为空格和回车都是结束符
  • 如果输入超出字符串长度,会报错
  • 结尾不会自动换行
1
2
char 变量名[数组长度] = { 0 };
scanf("%s", 变量名);

gets函数

  • gets函数只会认为回车是结束符
  • 如果输入超出字符串长度,会报错
1
2
char 变量名[数组长度] = { 0 };
gets(变量名);

fgets 函数

  • fgets改进了gets
  • fgets函数只认为回车是结束符,同时这个换行符也作为输入存进了字符串
  • 如果输入超出字符串长度,不会报错
  • 结尾会换行,因为有换行符
1
2
char 变量名[数组长度] = { 0 };
fgets(变量名, sizeof(变量名), stdin);

字符串输出

printf 函数

  • 结尾不会自动换行

<str>:字符串变量

1
printf("%s", <str>);

puts 函数

  • puts只能输出字符串
  • 结尾会自动换行
1
puts(<str>);

fputs 函数

  • 结尾不会自动换行
1
fputs(<str>, stdout);

完成