B站有视频演示

本章学习printf函数的输入输出,字符串的定义与实用。

字符串

字符串(character string)是一个或多个字符的序列,如下所示:

"Zing went the strings of my heart!"

双引号不是字符串的一部分。双引号仅告知编译器它括起来的是字符 串,正如单引号用于标识单个字符一样。

字符串的存储

用数组(array)储存字符串(character string)。在该程序中,用户输 入的名被储存在数组中,该数组占用内存中40个连续的字节,每个字节储存 一个字符值。

使用%s转换说明来处理字符串的输入和输出。注意,在scanf()中, 字符串变量没有&前缀。

字符串的赋值

赋初值

char str[10]="hello";

中途赋值

#include<string.h>

strcpy(str, "Good News!"); /*给数组赋字符串*/

输入赋值

scanf("%s",str);//注意不要加取地址符号

输出函数

printf()函数

请求printf()函数打印数据的指令要与待打印数据的类型相匹配。例如, 打印整数时使用%d,打印字符时使用%c。这些符号被称为转换说明 (conversion specification),它们指定了如何把数据转换成可显示的形式。

函数使用说明

格式字符串中的转换说明一定要与后面的每个项相匹配,否则会打印出无意义的值

错误代码:(错误原因:两个%d但是只有一个变量)

printf("The score was Squids %d, Slugs %d.\n", score1);

由于 printf()函数使用%符号来标识转换说明,因此打印%符号就成了个 问题。如果单独使用一个%符号,编译器会认为漏掉了一个转换字符。解决 方法很简单,使用两个%符号就行了:

打印%:

printf("%%");

printf()的转换说明修饰符

标记:

修饰符:

讲几种特殊情况:

1.转化不匹配:

错误示例:(用%c打印整数)

int a=1;
printf("%c",a);

建议新手控制好这个问题,想要深入研究请看c primer plus原文(电子版208页)

2.printf函数返回值:

printf函数返回值返回打印字符的个数。如果有输出错误, printf()则返回一个负值

3.打印长字符的三种方案:

printf("Here's one way to print a ");       //写多个printf语句
printf("long string.\n"); printf("Here's another way to print a \ //用\加回车换行
long string.\n"); printf("Here's the newest way to print a " //多个双引号隔开
"long string.\n");

输入函数

scanf()函数

scanf()和 printf()类似,也使用格式字符串和参数列表

注意:

如果用scanf()读取基本变量类型的值,在变量名前加上一个&;

如果用scanf()把字符串读入字符数组中,不要使用&。

修饰符

格式字符串中的普通字符:

scanf("%d,%d", &n, &m);

scanf()函数将其解释成:用户将输入一个数字、一个逗号,然后再输入

222

一个数字。也就是说,用户必须像下面这样进行输入两个整数:

88,121

除了%c,其他转换说明都会自动跳过待输入值前面所有的空白。

scanf()的返回值:

scanf()函数返回成功读取的项数。如果没有读取任何项,且需要读取一 个数字而用户却输入一个非数值字符串,scanf()便返回0。

printf()和scanf()的*修饰符

printf("Weight = %*.*f\n", width, precision, weight);

一行代码展示了*的能力,即:可以动态调节字符串长度。

特别注意:

	double a=1.0;
scanf("%lf",&a);
printf("%f",a);

double类型要使用%lf进行输入!!!

c语言学习笔记第四章——字符串和格式化输入、输出的更多相关文章

  1. C Primer Plus学习笔记(三)- 字符串和格式化输入/输出

    从一个简单的例子开始 #include <stdio.h> int main() { char name[10]; printf("Input Your Name:\n" ...

  2. 【C语言学习】《C Primer Plus》第4章 字符串和格式化输入/输出

    学习总结 1.String str=”hello world!”;(Java),char[20]=” hello world!”;(C).其实Java字符串的实现,也是字符数组. 2.字符串的尾部都会 ...

  3. C Primer Plus 第4章 字符串和格式化输入/输出 编程练习

    1. #include <stdio.h> int main(void) { ]; ]; printf("请输入您的名字: "); scanf("%s&quo ...

  4. [Python学习笔记][第四章Python字符串]

    2016/1/28学习内容 第四章 Python字符串与正则表达式之字符串 编码规则 UTF-8 以1个字节表示英语字符(兼容ASCII),以3个字节表示中文及其他语言,UTF-8对全世界所有国家需要 ...

  5. cocos2d-x实战 C++卷 学习笔记--第4章 字符串 __String类

    前言: <cocos2d-x实战C++卷>学习笔记.(cocos2d-x 是3.0版本) 介绍 cocos2d-x 通用的字符串类  __String . 使用cocos2d::__Str ...

  6. c语言学习之第四章

    第四章 第四章主要介绍了分支结构,循环结构的简单使用,还有其他简单的语句结束语句,比如,break,continue.还有gote语句.下面是我学习C语言第四章的一些心得和总结. 1简单的if语句 简 ...

  7. Java 学习笔记 ------第四章 认识对象

    本章学习目标: 区分基本类型与类类型 了解对象与参考的关系 从打包器认识对象 以对象观点看待数组 认识字符串的特性 一."=" 和 "==" 当=用于基本类型时 ...

  8. Python学习笔记(四)字符串型

    字符串是 Python 中最常用的数据类型.我们可以使用引号('或")来创建字符串. 在最新的Python 3版本中,字符串是以Unicode编码的,也就是说,Python的字符串支持多语言 ...

  9. Haskell语言学习笔记(86)字符串格式化与插值

    String 的格式化 Text.Printf 这个模块用来处理字符串格式化. printf :: PrintfType r => String -> r printf 用于格式化字符串, ...

随机推荐

  1. 第八届蓝桥杯JavaB组国(决)赛真题

    解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.平方十位数 题目描述 由0~9这10个数字不重复.不遗漏,可以组成很多10位数字. 这其中也有很多恰好是平方数(是某个数的平方). 比 ...

  2. 【Jquery】判断宽度跳转

    $(window).resize(function(){ var wWidth = screen.width; if( wWidth < 788 ){ window.location.href= ...

  3. Jmeter(九) - 从入门到精通 - JMeter逻辑控制器 - 上篇(详解教程)

    1.简介 Jmeter官网对逻辑控制器的解释是:“Logic Controllers determine the order in which Samplers are processed.”. 意思 ...

  4. Python基础002---基础知识

    一.标识符 标识符是自己定义的,是开发人员在程序中自己定义的一些符号和名称,如变量名.函数名等.在 Python 里,标识符由字母(区分大小写).数字.下划线组成,且数字不能开头.常用的命名方法有小驼 ...

  5. Spring Cloud 系列之 Alibaba Nacos 配置中心

    Nacos 介绍 Nacos 是 Alibaba 公司推出的开源工具,用于实现分布式系统的服务发现与配置管理.英文全称 Dynamic Naming and Configuration Service ...

  6. Unable to resolve dependency for ':app@debug/compileClasspath': Could not find any version that matc

    错误展示: 错误提示: Unable to resolve dependency for ':app@debug/compileClasspath': Could not find any versi ...

  7. RockeMQ安装与入门

    淘宝内部的交易系统使用了淘宝自主研发的Notify消息中间件,使用Mysql作为消息存储媒介,可完全水平扩容,为了进一步降低成本,淘宝开发团队认为存储部分可以进一步优化,2011年初,Linkin开源 ...

  8. PHP控制阿里云短信API接口实现短信群发功能

    阿里云短信支持先使用后支付的原则,价格为4分半1条. 通过SDK可以与网站功能的绑定,实现响应的短信发送功能 现已统一合并升级为:消息服务. 消息服务 阿里云消息服务(Message Service, ...

  9. c语音学习笔记

    1.学习教程参考了杨光福 android jni Android视频<JNI> http://edu.csdn.net/course/detail/3235/54186?auto_star ...

  10. 入门大数据---Kylin搭建与应用

    由于Kylin官网已经是中文的了,而且写的很详细,这里就不再重述. 学习右转即可. 这里说个遇到的问题,当在Kylin使用SQL关键字时,要加上双引号,并且里面的内容要大写,这个和MySql有点区别需 ...