一、复习一下前面所学的内容
1.写出下列字符或者数字的类型以及在printf()函数中使用什么符号转换
| 常量 | 类型 | 转换说明(%转换符号) |
|---|---|---|
| 12 | int | %d |
| 0X3 | unsigned int | %#x |
| 'C' | char(实际上是int) | %c |
| 2.34E07 | double | %e |
| '\040' | char(实际上int) | %c |
| 7.0 | double | %f |
| 6L | long | %ld |
| 6.0f | float | %f |
| 0x5.b6p12 | float | %a |
| 012 | unsigned int(八进制) | %#o |
| 2.9e05L | float | %Le |
| 's' | char | %c |
| 100000 | long | %ld |
| '\n' | char(实际上是int | %c |
| 20.0f | float | %f |
| 0x44 | unsigned int(十六进制) | %x |
| -40 | int | %d |
2.假设char ch;分别使用转义序列,十进制,八进制,十六进制来进行赋值\r
char ch = '\r'; char ch = 13; char ch = '\015'; char ch = '\xd';
二、字符串和格式化输入输出
#include<stdio.h> #include<string.h> //提供strlen()函数的原型 #pragma warning(disable:4996) #define DENSITY 62.4 //人体密度(单位:磅/立方英尺) int D15_talkback() { float weight, volumn; int size, letters; char name[40]; //name是一个可以容纳40个字符的数组 printf("Hi!What's your first name?\n"); scanf("%s", name); printf("%s ,what's your weight in pounds?\n", name); scanf("%f", &weight); size = sizeof name; letters = strlen(name); volumn = weight / DENSITY; printf("Well ,%s ,your volumn is %2.2f cublic feet.\n", name, volumn); printf("Also,yout first name has %d letters,\n", letters); printf("and we have %d bytes to store it.\n", size); return 0; }
显示结果: 
- 该程序包含以下特性
- (1)用数组(array)存储字符串(character string),在该程序中,用户输入的名存储到数组中,该数组占用内存40个连续的字节,每个字节存储一个字符值。
- (2)使用%s转换说明来处理字符串的输入和输出,注意:在scanf()中,name没有&前缀,而weight是有的。
- (3)C预处理器把字符常量DENSITY定义为62.4
- (4)用C函数strlen()获取字符串的长度。
三、源码:
- D15_talkback.c
- https://github.com/ruigege66/CPrimerPlus/blob/master/D15_talkback.c
- CSDN:https://blog.csdn.net/weixin_44630050
- 博客园:https://www.cnblogs.com/ruigege0000/
- 欢迎关注微信公众号:傅里叶变换,个人账号,仅用于技术交流
![20.4]()

浙公网安备 33010602011771号