文章目录
- 一、字符串
- 二、 输入
- 2.1 scanf()作用
- 2.2 两种用法
- 三、输出
- 3.1 printf()
- 3.1.1 printf 四种用法
- 3.1.2 常用输出控制符
- 3.1.3 为什么需要输出控制符
一、字符串
字符串是一个或多个字符的序列。如:“Hello World”
双引号不是字符串的一部分。仅告知编译器它括起来的是字符串,正如单引号用于表示单个字符一样。
C语言没有专门用于存储字符串的变量类型,字符串都被存储在char类型的数组中。数组由连续的存储单元组成,字符串中的字符都被存储在相邻的存储单元中,每一个存储单元存储一个字符。
在数组末尾的位置的字符"\0"。是空字符(null character),C语言用它标记字符串的结束。空字符不是数字0,它是非打印字符,其ASCII码值是0。
C中的字符串一定以空字符结束,这意味着数组的存储容量必须至少比待存储字符串中的字符数多1。
二、 输入
2.1 scanf()作用
C库包含了多个输入函数,scanf()是最通用的一个,因为它可以读取不同格式的数据。scanf()和printf()类似,也使用格式字符串和参数列表。scanf()函数使用了指向变量的指针(后面会详解指针)。
使用scanf()的两条规则:
1、如果用scanf()读取基本变量类型的值,在变量名前加上一个 “&”。
2、如果使用scanf()把字符串读入字符数组中,不要使用 “&”。
2.2 两种用法
1、scanf("输入控制符",输入参数);
作用:将从键盘输入的字符转化为输入控制符所规定格式的数据,然后存入以输入参数的值为地址的变量中。
#include <stdio.h>
int main() {
int num;
printf("Please enter a number:\n");
scanf_s("%d", &num);
printf("输入的数字为:%d", num);
return 0;
}
2、scanf("非输入控制符 输入控制符",输入参数);
作用:将从键盘输入的字符转化为输入控制符所规定格式的数据,然后存入以输入参数的值为地址的变量中,非输入控制符必须完全输入。
#include <stdio.h>
int main() {
int num;
printf("Please enter a number:\n");
// ABC为非输入控制符,在进行输入时也必须加上ABC
scanf_s("ABC%d", &num);
printf("输入的数字为:%d", num);
return 0;
}
三、输出
3.1 printf()
请求printf()函数打印数据的指令要与待打印数据的类型相匹配。例如打印整数要用%d,打印字符使用%c。这些符号被称为转换说明,他们指定了如何把数据转换成可显示的形式。
3.1.1 printf 四种用法
1、printf("字符串")
#include <stdio.h>
int main() {
// 输出字符串
printf("Hello world");
return 0;
}
2、printf("输出控制符",输出参数)
#include <stdio.h>
int main() {
int num = 123;
// 输出变量的值
printf("%d",num);
return 0;
}
3、printf("输出控制符1 输出控制符2 。。。",输出参数1,输出参数2)。输出控制符和输出参数必对应。
#include <stdio.h>
int main() {
int num = 123;
char ch = 'A';
// 输出变量的值
printf("%d %c",num, ch);
return 0;
}
4、printf("输出控制符 非输出控制符",输出参数)
#include <stdio.h>
int main() {
int num = 123;
char ch = 'A';
// is char为非输出控制符
printf("%d %c is char",num, ch);
return 0;
}
3.1.2 常用输出控制符
%d 以十进制格式输出 -- int整型
%ld --long int长整型
%c -- char字符
%f --float单精度浮点型
%lf -- double双精度浮点型
%x(%X)(%#X) 以十六进制的格式输出 -- int或者--long int
%o 以八进制格式输出 -- int或者--long int
%s --字符串
%p --指针
3.1.3 为什么需要输出控制符
1、0和1组成的代码可以表示数据也可以表示指令。
2、如果0和1组成的代码表示的是数据的话,那么同样的0和1代码组合以不同的输出格式输出就会有不同的输出结果。