首页 > 其他分享 >【C语言学习】之字符数组与字符串处理函数

【C语言学习】之字符数组与字符串处理函数

时间:2024-04-05 21:05:21浏览次数:25  
标签:字符 函数 空字符 C语言 char 数组 字符串 处理函数

1.字符数组

1.字符数组的初始化

1.单字符形式

char a[3]={'a','b','c'}                                定义一个字符型一维数组,数组名a,三个下表变量a,b,c

char b[][3]={'a','b','c','d','e','f','g'}             定义一个二维字符型数组,3行三列,字符为a,b,c,d,e,f,g,0,0,0(没有定义的,自动调整为空字符)

char c[5]={65,66,67};                             定义一维字符数组,五个下标变量:相当于A,B,C,0,0没有定义的自动置为0

和其他类型数组的初始化形式一样

2.字符串形式

char a[10]="string"                                数组a分配空间的时候分配10个字节,string存入前面7个字节(因为最后要多存一个/n),剩下三个自动置为0(空字符)

char b[]="string"                                    数组b只分配7个字节(按需分配)

char c[3][8]={"abc","123","string"}        二维 数组c分配24个字节,每个一维数组8个字节,一维数组a[0]存储abc,a[1]存储123,a[2]存储string

对于字符串形式的初始化,能够保证数组中储存的是一个或几个字符串,将来可以用puts(),printf()函数以字符串形式输出他们,单字符形式的初始化不能保证所存存储的是一个字符串,也许只是一个字符序列,只能用循环逐个输出字符

2.字符串的储存和字符串结束的标志

将字符串的每个字符的ASCII码按顺序储存到内存的一段连续的空间内,最后添加一个空字符\n(0)表示结束

2.字符串处理函数

1.字符串输入函数gets()

1.函数原型

char*gets(char*s)

2.函数功能

从键盘读取若干字符(以换行符作为读取结束的标志位),存入s所指内存区域,并在最后一行填上\n

3.返回值

输入成功返回指针s,不成功返回NULL

2.字符串输出函数puts()

1.函数原型

int puts(char*s)

2.函数功能

将内存中以s起始,空字符为结束标志位的字符串输出,输出后自动换行

3.返回值

换行符或者0,失败则为EOF

3.字符串连接函数stract()

1.函数原型

char*stract(char*p1,char*p2)

2.功能

将内存中p2为起始的字符串连接到以p1为起始的字符串的后面,组成一个字符串,最后面有一个空字符

3.返回值

返回连接后字符串的首地址,即p1

4.字符串复制函数strcpy()

1.函数原型

char*strcpy(char*p1,char*p2)

2.函数功能

将内存中以p2为起始地址的字符串复制到p1所指的内存区域,使之成为一个字符串,最后有空字符,p1所指的原有区域的内容被覆盖

3.返回值

返回p1

5.字符串比较函数strcmp()

1.函数原型

int*strcmp(char*p1,char*p2)

2.函数功能

将内存中以p1为首地址的字符串和以p2为首地址的字符串逐个字符进行比较,直到遇到两个不同的字符或者同时遇到两个空字符

3.返回值

如果遇到不同的字符,前者大则返回正数,前者小则返回负数,如果同时遇到两个空字符,返回0

6.字符串长度测试函数

1.函数原型

int strlen(char*str)

2.函数功能

测试内存中以str为起始地址的字符串中有效字符的个数,即空字符之前有多少个字符

3.返回值

字符串的长度

标签:字符,函数,空字符,C语言,char,数组,字符串,处理函数
From: https://blog.csdn.net/m0_69142917/article/details/137401028

相关文章

  • 【C语言学习】之一维数组
    1.相同类型的变量可以构成数组,数组一次可以定义多个相同类型的变量既然是变量,肯定有定义和引用:1.一维数组的定义1.定义格式:数据类型数组名[整型常量]例如:inta[4],                    //定义了一个数组a包含4个整形变量括号里......
  • 【C语言学习】之变量的作用域和作用类别
    1.局部变量(在函数内部(1.函数体开头定义的变量2.复合语句内定义的变量3.函数的形参)定义的变量,只能在函数内部使用。如果和全局变量同名则优先引用)2.全局变量(不在任何函数内部定义的变量都是全局变量,作用于定义它的地方开始到源文件的结束)全局变量的拓展:1.externc:可以把全局......
  • 疯狂Python讲义学习笔记——第2章变量和简单类型2.4字符串入门
    思维导图          字符串的意思是“一串字符”,比如"Hello,Python"是一个字符串,"Howdoyoudo?"也是一个字符串。Python要求字符串必须使用引号括起来,可使用单引号或双引号,只要两边的引号能配对即可。4.1字符串和转义字符        字符串的内容几乎可......
  • 【C语言系列】-- 数组结构
    数组结构前面介绍的数据类型都是基本数据类型,例如整型、字符型、浮点型等数据,这些都是简单的数据类型。对于有些数据,只有简单的数据类型是不够的,难以反映出数据的特点,也难以有效地进行处理。例如:假设需要接收并存储100个学员的成绩,此时无法使用for循环依次读取每个学员的成绩,因......
  • 删除字符串中间的*
    描述输入一个字符串,将串前和串后的保留,而将中间的删除。输入描述一个含*的字符串。输出描述删除了串中的*的字符串。用例输入1 ***ABC123**123*abc***********用例输出1 ***ABC123123abc***********代码#include<bits/stdc++.h>usingnamespacestd;intmain(......
  • C语言——调试技巧
    1.Debug和Release的介绍Debug通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。2.调试快捷键最常使用的几个快捷键:F5启动调试,经常用来直......
  • C语言常见概念(一)
    1.C语言发展史,学习C语言的必要性?2.编译和链接是什么?过程是什么?3.各个编译器我该使用什么?vs的优势?4.main函数究竟是啥?5.关键字有哪些?要背诵吗?6.字符?asc码?字符计算?7.C语言的字符串?字符和字符串有何区别?8.sizeof和strlen?竟然有坑?9.转义字符是什么?平时怎么......
  • 从无到有开始创建动态顺序表——C语言实现
    顺序表的概念    顺序表的底层结构是数组,对数组的封装,实现了常用的增删改查等接口。在物理结构和逻辑结构都是连续的,物理结构是指顺序表在计算机内存的存储方式,逻辑结构是我们思考的形式,顺序表和数组是类似的,都是使用了连续的空间进行数据的保存,由于是连续的空间,所......
  • 黑马程序员Java从入门到起飞(上) P103 字符串-08-较难练习练习-金额转换
    文章目录标题:黑马程序员Java从入门到起飞(上)P103字符串-08-较难练习练习-金额转换前言一、案例的使用场景是什么?二、输入输出情况三、思路四、什么是查表法?五、代码实现六、完整代码总结标题:黑马程序员Java从入门到起飞(上)P103字符串-08-较难练习练习-金额转......
  • C语言中循环语句while 中判断条件出现 || 和 && 的区别
    当while循环条件中出现||(逻辑或) ||两边的条件有任意一个满足条件时,即为真(也就是非0),循环继续,只有两边都满足条件时,即为假(也就是0),跳出循环  当while循环条件中出现&&(逻辑与)&& 两边都满足条件时,即为真(也就是非0,循环继续只要有任意一边满足条件,即为假(也就是0),跳出循环......