4.字符和格式化输入/输出

来源:互联网 发布:手机熊猫抢福袋软件 编辑:程序博客网 时间:2024/06/03 14:53

  • 概括
  • 1 前导程序
  • 2 字符串简介
    • 1 char类型数组和null字符
    • 2 strlen函数
  • 3 常量和C预处理器
    • 1 const限定符
    • 2 明示常量
  • 4 printf和scanf
    • 1 print函数
    • 2 printf的转换说明修饰符

概括

  • 函数:strlen()
  • 关键字:const
  • how creat store string
  • 如何使用strlen函数获取字符串的长度
  • C预处理指令#define和ANSIC的const的修饰符创建符号常量

4.1 前导程序

//演示与用户交互#include<stdio.h>#include<string.h>  //提供strlen()函数的原型#define DESITY 62.4 //定义字符常量DESITY位62.4,double类型int main(void){    float weight,volume;    int size,letters;    char name[40];//数组array,用40个连续字节store    printf("what's your first name?\n");    scanf("%s",name); //字符串打印%s;name前没有前缀&,而weight前面有&,稍后解释;    printf("%s,what's your weight in pounds\n",name);    scanf("%f",&weight);    size = sizeof name;    letters = strlen(name);//获取字符串长度    volume =weight/DESITY;    printf("%s,your volume is %2.2f cubic feet.\n",name,volume);    printf("your first name has %d letters\n",letters);    printf("we have %d bytes to store it.\n",size);    return 0;}

4.2 字符串简介

42.1 char类型数组和null字符

c语言对“zgq is me!”的存储如下:
这里写图片描述
每个储存单元1字节,每个字符占用1字节存储(空格占用1字节),\0(空字符)占用1字节,因此char[40],只能存储39个字符,剩下的1个字节留给空字符;
数组是同类型的数据元素组成的有序序列,char数组声明如4.1的char name[];
下面是声明char字符和char数组的区别:
这里写图片描述

#include<stdio.h>#define PAISE "你好。"int main(){    char name[40];    name = "zgq";//错误的    printf("What's your name?\n");    printf("%s",name)    printf("%s",name,PAISE);    return 0;}
//使用字符串#include<stdio.h>#define PRAISE "你好。"int main(){    char name[40];    printf("What's your name?\n");    scanf("%s",name);//scanf()只读取第一个空格钱的单词,读取多个单词可以用fgets(),后面讲解    printf("%s,%s\n",name,PRAISE);//两个%s,分别打印name,和PRAISE    return 0;}//What's your name?//张 国乾//张,你好。

“x”与‘x’的区别:
区别

42.2 strlen()函数

使用次函数前要在预处理中键入#include

#include<stdio.h>#include<string.h>#define CHAR5 ABCDEint main(){    printf("sizeof is %zd\nstring is #zd."sizeof(CHAR5),STRLEN(CHAR5));    //%zd用来转换sizeof(CHAR5)和strlen(),gcc的编译器不支持%zd    return 0;}

4.3 常量和C预处理器

#include NAME value //末尾不加分号
//计算圆的area#include<stdio.h>#define PI 3.14159265int main(){    float area,circum,radius;    printf("What is the radius of your pizza?\n");    scanf("%f",&radius);    printf("The circum is %.2f\t",2 * PI * radius);    printf("The area is %.2f\n",PI * radius * radius);//%.2f(度四舍五入)    return 0;}
#define BEEP '\a'   //定义字符#define tee 'T'         //不能有等号#define ESC '\033'      //大写部分为符号常量#define OOPS "Now you have done it!"//定义字符串#define TT=20                 //错误定义

43.1 const限定符

C90标准新增的关键字,声明:

const int MONTHS = 12; //12章将讨论与const相关的内容//const是限定符

43.2 明示常量

C头文件limits.h和float.h
limits.h的一些明示常量
这里写图片描述
float.h中的一些明示常量
这里写图片描述

4.4 printf()和scanf()

printf()函数和scanf()函数能让用户可以和程序互动交流,他们是输入/输出函数,或者简称I/O函数。

44.1 print()函数

转换说明 输出 %a/%A 浮点数、十六进制数和p计数法(C99和C11) %c 单个字符 %d 有符号数十进制 %e/%E 浮点数指数计数法 %f 浮点数十进制 %g/%G 自动选择%f和%e %i 与%d相同 %o 无符号八进制 %p 指针 %s 字符串 %u 无符号十进制 %x 无符号十六进制 %% 打印百分号

44.2 printf()的转换说明修饰符

printf()的修饰符
这里写图片描述
printf()的标记
这里写图片描述

原创粉丝点击