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 ...
随机推荐
- 使用python进行utf9编码和解码
在2005年4月1日(也就是愚人节),IEEE的rfc4042文件规定了utf9和utf18这2个所谓的Unicode的高效转换格式. 具体的格式说明,有兴趣的话点击上面的rfc4042链接去观看. ...
- SQL开发规范
一.SQL代码规范: 1.头部 --************************************************************************** --所属主题: ...
- Item 26: 避免对universal引用进行重载
本文翻译自<effective modern C++>,由于水平有限,故无法保证翻译完全正确,欢迎指出错误.谢谢! 博客已经迁移到这里啦 如果你需要写一个以名字作为参数,并记录下当前日期和 ...
- Beta阶段团队成员贡献分分配规则
Beta阶段团队成员贡献分分配规则 Alpha阶段贡献分分配有些负责,在这里进行一些修改: 对任务完成得分部分进行了简化 对发现bug的惩罚措施进行了修改 移除了优化得分,不鼓励修改他人代码 移除了帮 ...
- H5 62-浮动元素字围现象
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 安装配置JDK和Eclipse的步骤
导读 作为Java程序员,需要在Linux系统上安装Eclipse,很多人不知要如何安装,在安装Eclipse前,还需安装JDK,Linux下如何安装JDK和Eclipse呢?下面跟朋友们介绍下Lin ...
- 多线程系列之十:Future模式
一,Future模式 假设有一个方法需要花费很长的时间才能获取运行结果.那么,与其一直等待结果,不如先拿一张 提货单.获取提货单并不耗费时间.这里提货单就称为Future角色获取Future角色的线程 ...
- 【问题解决方案】本地代码文件上传到GitHub里中文乱码问题
刚刚学完Git并试着上传了我的化石Java代码到远程库,表面一切和谐,然而.. 真让人大惊失色.. step1-检查浏览器是否是utf-8(谷歌默认是) step2-在本地编辑器设置 (按理说,not ...
- javascript博客爱心特效代码与代码解析
这个鼠标点击出现爱心的特效经常在别的博客里见到,于是我查了度娘后拿来直接用上了. 虽然不知道原作者是谁,但肯定是个大神,只有通过观摩他/她的代码膜拜一下啦. 直接上代码(解析在代码注释里): // 自 ...
- 7 Make vs Do
1 英语中,含有 "do" 和 "make" 的词语, 例如 "make a suggestion" 和 "do your bes ...