一、复习一下前面所学的内容
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/
- 欢迎关注微信公众号:傅里叶变换,个人账号,仅用于技术交流