string操作、文件操作
来源:互联网 发布:阿里云esc绑定域名 编辑:程序博客网 时间:2024/03/28 16:27
程序在内存中是分段落保存的
代码段 存放所有语句,在运行是内容不可以修改
栈里为每个函数的每次运行分配一个私有的区域
每次函数运行结束后它的私有区域被回收
局部变量,形式参数,和返回值都放在栈里
ASCII 码为 0 的字符用 '\0' 表示,它用来表示一段文字信息的结束位置
这些存储位置叫做字符串
字符串字面值是实现字符串的一种方法,例如 "abc","3+4%6",两个双引号之间
编译器在编译时自动给字面值加 '\0' 结尾字符
编译器自动把字符串字面值替换成首字符地址
在程序运行时字符串字面值被存储在专门的段落里,这个段落是不可修改的
多个同样内容的字符串字面值在程序运行时只占有一份内存空间
并列的多个字符串字面值在编译时会被合并成一个字面值
C 语言中也可以使用字符数组表示字符串
编译器不会自动向字符数组中加 '\0' 字符
char buf[] = {'a','b','c','\0','d','e'} 表示 "abc" 字符串
可以使用字符串字面值给字符数组进行初始化 字面值最后的 '\0' 会被加到字符串数组的后面
char buf[] = "xyz" ;包含四个字符 数组里会加 '\0'
sizeof(buf) = 4;
char buf[3] = "xyz" ; 数组不是字符串,没位置加 '\0'
初始化完成后字面值和字符数组各自有自己的存储位置互相之间没有关系
这些标准函数都需要包含 string.h 文件
strlen 用来获得字符串中有效字符的个数
strcat 把一个字符串追加在另一个字符串的后边,返回值表示合并后的结果
会修改一个参与计算的原字符串,有可能造成数组越界
strncat 功能类似 strcat 不会数组越界
strcmp 用来比较两个字符串是否相等,比较依据是字符数据的 ASCII 码
前一个字符串大时返回 1,后一个字符串大时返回 -1 ,相等是返回 0
strncmp 只比较两个字符串前 n 个字符
strcpy 用来把一个字符串的内容复制到一个字符数组中
返回值就是字符数组的首地址,这个函数也可能造成越界
strncpy 可以只复制 n 个字符
可以使用 %s 做占位符对字符串进行读取和打印操作
使用 scanf 标准函数读字符串会出严重错误
fgets 标准函数可以从任何文件读字符串
在 LINUX 系统所有设备都是文件,键盘和屏幕都可以用文件表示
在程序中可以使用 stdin 表示标准输入文件(通常情况下就是键盘)
fgets 函数需要三个参数
1.字符数组名称
2.数组中存储位置的个数
3.要读取的文件 (stdin)
每次使用 fgets 读字符串后都要处理输入缓冲区中的垃圾数据
二维字符数组可以用来记录多个相关字符串
这种存储方式不灵活
指针数组也可以用来表示多个相关字符串
这种存储方式非常灵活
指针数组名称可以赋值给二级指针
主函数也有形参,第二个形参表示一组相关字符串,第一个形参表示相关字符串的个数
1.文件位置指针
2.预处理指令 (宏定义,条件编译...)
3.多文件的编写
2.编写两个程序,把用户输入的包含多个成绩的字符串拆分成多个成绩字符串并分别记录在二维数组或指针数组中,结果打印出来,成绩个数不超过 5 个
代码段 存放所有语句,在运行是内容不可以修改
全局段 用来存放全局变量和静态变量,大小不随着程序的运行而改变
栈里为每个函数的每次运行分配一个私有的区域
每次函数运行结束后它的私有区域被回收
局部变量,形式参数,和返回值都放在栈里
堆 存放动态分配的数据,堆中变量的生命周期是程序员管理的
ASCII 码为 0 的字符用 '\0' 表示,它用来表示一段文字信息的结束位置
这些存储位置叫做字符串
字符串的开始位置使用第一个字符存储位置的地址表示
字符串字面值是实现字符串的一种方法,例如 "abc","3+4%6",两个双引号之间
编译器在编译时自动给字面值加 '\0' 结尾字符
编译器自动把字符串字面值替换成首字符地址
在程序运行时字符串字面值被存储在专门的段落里,这个段落是不可修改的
多个同样内容的字符串字面值在程序运行时只占有一份内存空间
并列的多个字符串字面值在编译时会被合并成一个字面值
C 语言中也可以使用字符数组表示字符串
编译器不会自动向字符数组中加 '\0' 字符
char buf[] = {'a','b','c','\0','d','e'} 表示 "abc" 字符串
可以使用字符串字面值给字符数组进行初始化 字面值最后的 '\0' 会被加到字符串数组的后面
char buf[] = "xyz" ;包含四个字符 数组里会加 '\0'
sizeof(buf) = 4;
char buf[3] = "xyz" ; 数组不是字符串,没位置加 '\0'
初始化完成后字面值和字符数组各自有自己的存储位置互相之间没有关系
字符数组在内存中存放的段落不确定但一定是可以修改的
这些标准函数都需要包含 string.h 文件
strlen 用来获得字符串中有效字符的个数
strcat 把一个字符串追加在另一个字符串的后边,返回值表示合并后的结果
会修改一个参与计算的原字符串,有可能造成数组越界
strncat 功能类似 strcat 不会数组越界
strcmp 用来比较两个字符串是否相等,比较依据是字符数据的 ASCII 码
前一个字符串大时返回 1,后一个字符串大时返回 -1 ,相等是返回 0
strncmp 只比较两个字符串前 n 个字符
strcpy 用来把一个字符串的内容复制到一个字符数组中
返回值就是字符数组的首地址,这个函数也可能造成越界
strncpy 可以只复制 n 个字符
可以使用 %s 做占位符对字符串进行读取和打印操作
使用 scanf 标准函数读字符串会出严重错误
fgets 标准函数可以从任何文件读字符串
在 LINUX 系统所有设备都是文件,键盘和屏幕都可以用文件表示
在程序中可以使用 stdin 表示标准输入文件(通常情况下就是键盘)
fgets 函数需要三个参数
1.字符数组名称
2.数组中存储位置的个数
3.要读取的文件 (stdin)
每次使用 fgets 读字符串后都要处理输入缓冲区中的垃圾数据
二维字符数组可以用来记录多个相关字符串
这种存储方式不灵活
指针数组也可以用来表示多个相关字符串
这种存储方式非常灵活
指针数组名称可以赋值给二级指针
主函数也有形参,第二个形参表示一组相关字符串,第一个形参表示相关字符串的个数
1.文件位置指针
2.预处理指令 (宏定义,条件编译...)
3.多文件的编写
练习
1.编写 mystrcat 函数,实现 strcat 函数的多有功能 , 指针编写2.编写两个程序,把用户输入的包含多个成绩的字符串拆分成多个成绩字符串并分别记录在二维数组或指针数组中,结果打印出来,成绩个数不超过 5 个
0 0
- string操作、文件操作
- string 操作
- string操作
- String 操作
- String操作
- string操作
- String操作
- String操作
- String操作
- String操作
- string操作
- String操作
- string操作
- String操作
- c++流文件操作,针对string
- c++流文件操作,针对string
- Java文件操作大全(包括文件加密,String加密)
- Spring RedisTemplate操作-String操作
- TortoiseGit和msysGit安装及使用笔记(windows下使用上传数据到GitHub)
- 实现在ubuntu12.04.4开机时自动挂载windows磁盘
- PHP操作数据库工具类
- 同步,异步,阻塞,非阻塞
- ibatis笔记
- string操作、文件操作
- 周末感悟
- 一个最基本的PHP解析XML的实例
- PHP QuickSort 递归简单实现
- 2015年腾讯软件开发实习生招聘笔试题
- 金块问题
- linux菜鸟入门系列之手动配置ip地址
- 2014年腾讯软件开发校园招聘笔试题
- Java之CloneNotSupportedException