C 语言-----字符串和输入输出函数
在C语言中,没有字符串类型,那它是怎么表示字符串呢? 由于字符串是一系列单个字符的组合,所以它用char 类型的数组来表示字符串,在数组中,一个数组元素存放一个char类型字符。
char name[];
name 变量就可以存放字符串了,并且最多只能存储40个字符。那我们怎么给变量name赋值呢,最简单的办法,就是用字符串常量。字符串常量的写法和我们平时的写法还是一样的,用双引号括起来,如“Zing went the strings of my heart”; 字符串常量写好后,就可以像下面一样进行赋值
name=”Zing went the strings of my heart”;
赋值成功后,它在内存中的表示形式如下:
你可能已经注意到数组末尾位置有一个字符\0, 它是空字符,表示字符串的结束。C语言中,字符串一定以空字符结束,这意味着声明数组的容量必须比它要存储的字符串的长度多1;在这里,str字符串的长度是40, 我们只能存储39个字符, 剩下一位留给空字符。
strlen() 函数则是获取到字符串的长度,strlen(str) 结果为33, 它包含在string.h 头文件中,所以使用这个方法之前,要先引进这个头文件 #include<string.h>
#include <stdio.h>
#include <string.h> // 引进头文件string.h int main()
{
char str[] = "Zing went the strings of my heart";
printf("%u", strlen(str)); // 调用strlen 获取字符串的长度
return ;
}
顺便说一下常量的定义:
1,使用预处理器定义常量。在程序的头部#define PI 3.1415 在编译时,程序中的所有常量PI,都会被替换成3.1415. 这一过程也称之为编译时替换。
2,const 也可以用来声明常量,const double PI = 3.1415;
#include <stdio.h>
#define PI 3.1415 // 定义常量 int main()
{
const int r = ;
printf("%f %d", PI, r);
return ;
}
Printf()函数: 打印字符串,它的格式如下:
Printf(格式化字符串,待打印的参数1,待打印的参数2,.....待打印的参数n), 看一下下面这段打印代码,
printf(“The %d person ate %f berry pies. \n”, number, pies);
格式化字符串就是双引号括起来的内容,为什么叫格式化字符串,因为它里面有%d, %f, 这样的转换说明,就是后面要打印的项,以什么格式进行输出。%d表示以整数时行输出,%f 以浮点数进行输出。
还有其它几个常用的格式说明,
%e或 %E,以e记数法来表示浮点数
%s 字符串
%% 打印一个百分号
%c: 单个字符
这样我们在使用printf 的时候,就比较清楚了,我们要打印多少项,就要把它们在格式化字符串后面依次列出,同时在格式化字符串中匹配对应的格式说明,这里一定要注意,格式字符串中的转换说明的个数一定要和待打印项的个数一致,它们一一匹配。当然,如果只是打印字符串,就直接写要打印的字符串就好了,就不用转换说明了。Printf(“Hello World”)
转换说明修饰符: 就是在% 和d 之前可以加说明,表示对待打印项进一步的修饰。如%.2f 就是表示小数点后面保留两位小数。 %5d表示整数的宽度为5,但是如果指定的字宽小于原有数的字宽,字段宽度会自动增加。
#include <stdio.h>
#define PI 3.1415 // 定义常量 int main()
{
const int r = ;
int num = ;
// PI小数点后面成了2位,r占了5个字宽,num 虽然设了两个字宽,但这还是占3个
printf("%.2f %5d %2d", PI, r, num);
return ;
}
打印较长的字符,printf()可以接受多个字符串,编译的时候,会自动它拉连接到一起,如 printf(“this is a ” “best person”)
Scanf()读取输入的内容
当我们使用键盘进行输入的时候,输入的永远是字符,比如我们输入2018, 我们实际上是依次输入4个字符2,0,1,8, 所以我们要告诉scanf,他表示的是数字,所以还是用到了格式说明。scanf()的第一个参数,格式转换说明,后面则是读取的值要存入的变量。格式转换说明,和printf()函数一致
scanf(“%d %d”, &num1, &num2); //一定要注意变量前面的&符号,变量存储的是基本数据类型时,读取的时候,前面一定要加&
当用键盘输入多个数值时,中间用空格隔开,空格前面的就会赋给第一个参数,空格后面就会赋值给第二个参数。但这里要注意字符串的读取,scanf() 函数读取我们输入的字符串时,在遇到第1个空白(空格、制表符,换行符)时,就不会再读取输入。 scanf 去读取 angela palains 时,它只会读取 angela.
C 语言-----字符串和输入输出函数的更多相关文章
- C++中的字符串的输入输出函数、空字符与空格的区别、字符变量赋值和字符串初始化
一.字符串输入输出函数 1. cin.get() 逐个字符输入输出 2. cin 可以将整个字符串一次性输入,但是,cin将空格.Tab和回车键,因此不能用于数组的一次性输入. 注意:ci ...
- C语言 · 字符串输入输出函数
算法提高 3-2字符串输入输出函数 时间限制:1.0s 内存限制:512.0MB 描述 编写函数GetReal和GetString,在main函数中分别调用这两个函数.在读入一个实数 ...
- C语言的基本输入与输出函数(全解)
C语言的基本输入与输出函数 1.1.1 格式化输入输出函数 Turbo C2.0 标准库提供了两个控制台格式化输入. 输出函数printf() 和scanf(), 这两个函数可以在标准输入输出设备上以 ...
- c语言的输入输出函数
参考文章: http://blog.sina.com.cn/s/blog_784f40b80100psg9.html C语言输入输出函数分为两类: 1.格式化输入输出函数 2.非格式化输入输出 --- ...
- C语言中最常用的三种输入输出函数scanf()、printf()、getchar()和putchar()
本文给大家介绍C语言中最常用的三种输入输出函数scanf().printf().getchar()和putchar(). 一.scanf()函数格式化输入函数scanf()的功能是从键盘上输入数据,该 ...
- c语言输入输出函数
上学年学习c语言的时候比较匆忙,没好好吸收. 现在有时间好好复习下. 本文就c语言常见输入函数进行简单介绍,对比. ps:由于自己能力有限,时间有限,多数介绍,总结都是摘录网上相关学习资料,下面给出本 ...
- C语言的基本输入与输出函数
C语言中最常用最基础的输入输出函数:printf() 和 scanf(); 例子: #import <Foundation/Foundation.h> int main(int argc, ...
- C语言中输入输出函数
1.1.1 格式化输入输出函数Turbo C2.0 标准库提供了两个控制台格式化输入. 输出函数printf() 和scanf(), 这两个函数可以在标准输入输出设备上以各种不同的格式读写数据.pri ...
- C字符串输入输出函数
下面就几个常用的字符串输入输出函数做个小小的总结TAT 使用时添加头文件:#include<stdio.h>. scanf("格式控制字符串",变量地址列表):(pri ...
随机推荐
- face recognition[Euclidean-distance-based loss][FaceNet]
本文来自<FaceNet: A Unified Embedding for Face Recognition and Clustering>.时间线为2015年6月.是谷歌的作品. 0 引 ...
- bat性能效率受啥影响
代码效率的提升往往由算法决定,曾发过专贴(浅谈提高代码效率的编写习惯:http://tieba.baidu.com/p/1187281687),但是以实例为主,并没有太多的文字说明,现在归纳一下:影响 ...
- Objective-C Programming The Big Nerd Ranch Guide 笔记 19-37
Properties are either atomic or nonatomic, The difference has to do with multithreading. atomic is t ...
- docker部署nginx
1. 下载nginx [root@localhost my.Shells]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/ ...
- ZooKeeper: 简介, 配置及运维指南
1. 概览 ZooKeeper是一个供其它分布式应用程序使用的软件, 它为其它分布式应用程序提供所谓的协调服务. 所谓的协调服务, 是指ZooKeeper的如下能力 naming 命名 configu ...
- xadmin的使用
01-下载源码 GitHub地址:https://github.com/sshwsfc/xadmin # 安装xadmin 由于使用的是Django2.0的版本,所以需要安装xadmin项目djang ...
- 腾讯内推一面C++
北邮论坛找个腾讯的内推,没想到那么快就安排面试了.第一次面腾讯,写点东西记录一下吧. 面的是位置服务部门. 去了之后HR先给了两张纸,有三道编程题.第一道是求 二进制中1的个数(考察位运算)(剑指of ...
- python的循环和选择
一.python的选择结构: python的选择结构有两种选择结构一种是单选择(if...else)另一种则是多选择结构(if ...elif...elif) 下面用代码来实现: 1.if....el ...
- 各种jar包
springframework下载地址:http://maven.springframework.org/release/org/springframework/spring/ commons开头的j ...
- ElasticSearch Nosql
把 ElasticSearch 当成是 NoSQL 数据库 Elasticsearch 可以被当成一个 "NoSQL"-数据库来使用么? NoSQL 意味着在不同的环境下存在不同的 ...