第四章(字符串和格式化输入/输出)整理

本文深入讲解C语言的基本概念,包括预处理器指令、字符串处理、数组定义、输入输出函数及其参数传递方式。探讨了如何使用C预处理器定义符号和字符串常量,解释了数组的定义与使用,以及如何通过scanf()和printf()函数实现数据的输入输出,特别关注了字符串处理函数strlen()和sizeof()的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <string.h>——提供strlen()函数的原型
#include <stdio.h>——提供scanf()和printf()函数的原型
#include <limits.h>——提供整数类型大小限制相关的详细信息——P79
#include <float.h>——提供浮点数类型大小限制相关的详细信息——P79

用C预处理器:
1.定义符号常量:
#define 符号常量名 符号常量的值
例:#define PI 3.1415926

2.定义字符串常量:
#define 字符串常量名 “字符串常量”
例:#define PHRAISE “you are an extraordinary being!”

char name [40]——定义一个能容纳40个字符的名为name的数组
name后面的方括号表明这是一个数组,方括号中的40表明该数组中的元素数量,char表明每个元素的类型。

在用scanf()输入字符串时,很多时候输入的字符串是多个单词(比如姓名zhao guangyuan),此时scanf()读到zhao后面的第一个空格,即停止读入,为了避免出现这样的情况,可在scanf()的下一行加入一句fflush(stdin);用以清空输入缓冲区。

scanf(“%s”,name)——此处读入为字符串,需要用%s来处理字符串的输入和输出,且name前面不需要加&(name指代一个地址)

strlen()函数给出字符串中的字符长度,sizeof()以字节为单位给出对象的大小
对于PRAISE,用strlen()得出的是字符串中的字符数(包括空格和标点符号),然而,sizeof()运算符给出的数更大,因为它把字符串末尾不可见的空字符也计算在内

建议所有情况下,sizeof均使用双括号表示成sizeof()

C90标准新增了const关键字,用于限定一个变量为只读
例:const int MONTHS=12; //MONTHS在程序中不可更改,值为12

prinf()和scanf()函数能让用户可以与程序交流,它们是输入/输出函数,简称为I/0函数

printf()中的标记:
待打印左对齐,即从字段的左侧开始打印该项—— -
例:printf(“%-10d\n”,pages);//字符宽度为10,且从左侧开始打印

有符号值若为正,则在值前面显示加号,若为负,则在值前面显示减号 ——+

有符号值若为正,则在值前面显示前导空格——空格
例:printf(“%10d\n”,pages);//字符宽度为10,在值前面显示前导空格

把结果转换为另一种形式——#

%5.3d——字符宽度为5,显示3位有效数字

printf("[%24.5s]\n",BLURB);——字符宽度为24,只打印5个字符,在值前面显示前导空格

参数传递:
在这里插入图片描述

scanf()把输入的字符串转换成整数,浮点数,字符和字符串,而printf()正好与它相反,它把整数,浮点数,字符和字符串转换成显示在屏幕上的文本。

如果用scanf()读取基本变量类型的值,在变量名前面加一个&
如果用scanf()把字符串读入字符数组中,不要使用&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值