黑马程序员---学习笔记6:字符串

黑马程序员-黑马程序员训练营基础测试 为了帮助更多的人了解黑马,同时也 阅读详情


——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-


字符串:
位于双引号中的字符序列。在内存中以“\0”结束,所占字节比实际多一个。(\0是空字符,就是ascii码为0的那个)
注意:我们可以把字符常量赋值给字符变量,但是不能把字符串常量赋值给字符变量。
C语言中没有字符串类型的变量,可以用字符数组来存放字符串。

字符数组的定义:
1)一维字符数组定义;
char 数组名[常量表达式];
2)二维字符数组定义:
char 数组名[常量表达式][常量表达式]

字符数组初始化以及引用方式:
1,初始化
1)定义同时初始化:
char ch[5]={'a','b','c','d','e'};
char ch[ ]={'a','b','c','d','e'};
char ch[5]={'a','b','c'};部分初始化,其余部分,系统自动初始化为‘\0’
char ch[5]={[3]='d'};选择初始化,指定初始化的元素
2)先定义,后初始化
char ch[3];
ch[0]='a';
ch[1]='b';
ch[2]='c';
2,引用:
下标法进行引用和遍历
3,字符数组用来保存字符串
字符数组的作用:
1)保存字符
2)保存字符串
第一种方式:
char ch[4]={"abc"};双引号括起字符串可以直接赋值,要为最后的结束符(\0)保留存储空间
第二种方式:
char ch[4]="abc"; 这种方式没有大括号,结果一样。
第三种:char ch[ ]=“helloworld!”;自动分配内存,包括结束符

字符串的输入和输出:
使用的格式字符串为“%s”,表示输入和输出一个字符串

printf("%s",ch[3]);
从给定的地址开始,一直输出字符,直到遇到\0就停止了

%S接收键盘上输入的一个字符串
char str[50];
从键盘上接收一个字符串,保存在str为首地址的数组中
scanf("%s",str);
注意:如果以%S进行输入的话,遇到空格就会停止输入,空格之后的字符就无法被接收
输入的字符串的长度要小于数组的长度。

字符串结束符的使用:
用%S打印字符串,会遇到问题,那就是在遇到\0之前一直打印,根本停不下来。(把内存中的数据都打印出来)

char str[]="abc\0abc";
printf("%d\n",sizeof(str));//打印的结果是8

有专门计算字符串长度的方法
1)使用字符串函数:strlen(str);结果是7,这个函数不会计算结尾的\0
[code=c]
int searchChar(char str[ ],char key)
{
for(int i=0;str[i]!='\0';i++)
{
if(str[i]==key)
{
return i;
}
}
return -1
}
[/code]
注意:在定义数组的数据类型时,定义的是数组所包含的元素的的数据类型,而不是数组名的类型,数组名永远是一个指针,指向第一个元素的地址,即数组的首地址。

字符串函数的使用:
puts() 输出一个字符串
puts(字符数组名)
puts函数可以自动换行,默认在打印的字符串后面换行
参数可以不是数组首地址可以是元素地址
puts不可以格式化输出,就是puts(--->%s);这是不可以的,只能puts(%s);


gets()输入一个字符串
gets(字符数组名)
使用gets会给出一个警告,这是指,如果数组是100,但是你输入120个字符,它是不会报错的,但是它有一个优势,就是可以接收空格,scanf不可以的



strcat()连接两个字符串,使用该函数引入string.h
strcat(A,B);把字符串B连接到字符串A后面
注意:字符串A的长度要足够的大,要能容下A+B的长度,字符数组B把A的最后一个字符\0给覆盖了

strcpy 字符串拷贝函数
strcpy(oldStr,newStr);把newStr拷贝到oldStr中,覆盖oldStr的内容,一定要保证oldStr的内存足够大

strcmp 比较两个字符串的大小
规则:比较Ascii码值 比较在字典中出现的顺序
比较过程:逐个取两个字符串的字符,进行比较,从第一个不相同的开始就能确定字符串大小了
返回值:
>0 前一个大于后一个(真正的值时,两个字符相差的数值)
<0 前一个小于后一个
=0相同

strlen(字符数组名) :
个数 不包含\0的


黑马程序员考试题 题目一 文本文件中存储了多个文章标题、作者,标题和作者之间用若干空格(数量不定)隔开,每行一个,标题有的长有的短,输出到控制台的时候最多标题长度10,如果超过10,则截取长度8的子串并且最后添加“...”,加一个竖线后输出作者的名字。 namespace test1 { class Program { /*文本文件中存储了多个文章标题、作者,标题和作者之间 阅读详情

相关推荐

Java面试宝典2018:黑马程序员版

Java是一种面向对象的编程语言,自1995年由Sun Microsystems公司推出以来,因其跨平台性、安全性和简易性而广泛应用于企业级开发。Java代码在运行时通过Java虚拟机(JVM)转换成机器码,这意味着Java程序可以在任何安装了JVM的平台上执行,无需修改。| 方法 | 描述 |

weixin_42571280的博客 1100

黑马程序员C++学习笔记

C++基础入门 1 C++初识 1.1 第一个C++程序 编写一个C++程序总共分为4个步骤 创建项目 创建文件 编写代码 运行程序 1.1.1 创建项目 ​ Visual Studio是我们用来编写C++程序的主要工具,我们先将它打开 1.1.2 创建文件 右键源文件,选择添加->新建项 给C++文件起个名称,然后点击添加即可。 1.1.3 编写代码 #include<iostream> using namespace std; int main() { cout &

weixin_46015291的博客 6457

EU 2021/646 eCall工程拆解:MSD、测试模式与型式核准

紧急呼叫系统(eCall)是车载通信中面向事故救援的安全功能,其原理是在碰撞或人工触发后,通过蜂窝网络向公共安全应答点发送最小数据集(MSD),并建立语音链路。技术价值在于缩短救援响应时间、提升事故后生存率,应用场景覆盖乘用车、轻型商用车及车载T-Box等前装通信模块。面向欧盟市场时,EU 2021/646把eCall从安装要求推进到型式核准测试,关注触发链路、备用电源、GNSS定位、MSD字段、音频质量与回拨能力。工程落地需要围绕测试模式、字段校验、配置管理和送检样件建立可交付合规方案。

weixin_31815843的博客 210

《黑马程序员python教程,8天python从入门到精通,学python看这套就够了》学习笔记总目录

本文是对《黑马程序员python教程,8天python从入门到精通,学python看这套就够了》所有知识点的笔记进行总结分类。 学习时总结的目录笔记以及思维导图和实训,将在后续更新。

放下华子我只抽RuiKe5的博客 8842

SECS/GSM 测试工具 SecsExpress 的配置与实战应用

本文详细介绍了半导体设备通讯测试工具SecsExpress的配置与实战应用。作为专业的SECS/GSM协议调试工具,它能模拟Host与设备端进行双向测试,帮助工程师快速部署、验证通讯链路,并高效排查与RMS系统或真实设备间的联调问题,是提升半导体工厂设备集成与维护效率的利器。

yhn456789的博客 298

汽车TSN时间敏感网络测试技术与探索系列讲座4 -TSN802.1AS同步要求及验证方法

TSN网络各设备类型同步性能要求是什么?各类设备的测试组网及测试内容。也将通过演示来展示相关测试结果,及如何解决上述的测试关注点。

weixin_43903833的博客 761

黑马程序员前端JavaScript高级——ES6学习笔记

黑马程序员前端教程的PPT和代码学习笔记,里面包含了面向对象的编程思想,以及构造函数,类和对象、原型链、箭头函数、数组和字符串新增方法、函数递归、深拷贝浅拷贝、正则表达式等知识点。本文是对优快云其他博主记录的一个补充,因为黑马也是今年才陆续补充一些知识点的视频的,本文将其收录于此,雷同勿怪。

weixin_44566194的博客 3721

3个国产AI大模型实战:如何用DeepSeek+豆包+千问批量生成高质量测试用例(附完整代码)

本文详细介绍了如何利用DeepSeek、豆包和千问三大国产AI大模型批量生成高质量测试用例的实战方法。通过Python环境配置、多模型SDK安装和统一接口封装,实现高效测试用例生成,并结合结构化提示词设计和多模型结果对比分析,显著提升测试效率和覆盖率。

weixin_29197699的博客 712

黑马程序员最新Python教程——第一阶段(1)

黑马程序员最新Python教程,8天python从入门到精通,学python看这套就够了(笔记)

这里有一只小马吖 1万+

pycharm一直选择不了conda正确路径弹框报错:latinit property envs_dirs has not been initialized...如何解决?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 2923

188、LLC谐振变换器的样机调试实战(EMI测试)

本文分享了LLC谐振变换器EMI调试的实战经验。作者通过300W电源案例,指出LLC的EMI问题主要来自谐振腔共模电流和死区振铃,并提出三板斧解决方案:优化功率回路布局、合理选择共模电感、正确配置X/Y电容。文章详细分析了谐振电容位置、MOSFET走线、变压器屏蔽等关键设计要点,并列举示波器探头、滤波器接地等常见误区。最后强调EMI调试70%依赖布局优化,建议预扫测试、数据记录并保留6dB余量。全文以实际案例贯穿,为LLC电源EMI设计提供了实用指导。

Jack010169的博客 58

黑马程序员和尚硅谷前端Javascript学习笔记

元素对象.addEventListener('事件类型',要执行的函数)事件监听三要素:事件源:那个dom元素被事件触发了,要获取dom元素事件类型:用什么方式出发,比如鼠标单击clik、鼠标经过mouseover、文本框输入内容等事件调用的函数(事件处理程序):要做什么事alert('你好呀!')})事件监听的版本扩展:事件监听发展史:DOM L0事件源.on事件 = function(){}按钮DOM L1事件源.addEventListener(事件, 事件处理函数)

m0_74823044的博客 1412

实战二:基于LightGBM进行海洋轨迹预测 代码+数据(非常详细可作为毕设)

实战二:基于LightGBM进行海洋轨迹预测 代码+数据(非常详细可作为毕设)

1318

IO流(黑马程序员学习笔记)

字节缓冲流在源代码中内置了字节数组,可以提高读写效率。效率高(推荐,代码简单),流每次拿指定数组大小的字节,再写入目的源。效率高,每次从数据源拿8192个字节,再放到内存中,每次从内置数组(调用出来的数组)中拿每次拿指定数组大小的字节,写到输出数组中,写满8192个字节后,输出。/*D:\00-课程介绍.mp4 146MB拷贝的效率测试:1. 普通流单个字节拷贝 361719毫秒2. 普通流 + 自定义数组拷贝 146毫秒3. 缓冲流单个字节拷贝 2055毫秒。

A2294249395的博客 891

RK3568适配MIPI屏幕触摸,触摸延时很大

我用的是系统,接了一个,设备树已经正确配置,evtest测试坐标值和触摸位置都是准确的。但是出现了一个:我在屏幕上点一下,要等大约 2 秒才能在evtest里看到坐标事件打印。这种现象在 Goodix 系列触摸驱动里比较少见,一般意味着。

小灰灰的博客 1363

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

黑马程序员Java教程学习笔记(一)

文章目录黑马程序员Java学习笔记Java版本Java语言的跨平台原理JRE和JDKJDK的下载和安装HelloWorld案例注释关键字常量数据类型标识符类型转换运算符字符"+"操作字符串"+"操作复制运算符自增自减运算符关系运算符逻辑运算符三元运算符两只老虎三个和尚 黑马程序员Java学习笔记 Java版本 Java(5.0):是更新力度很大的一个版本,直接让Java的发展进入了快车道 Java(8.0):是公司中生产/开发环境使用的最多的版本 Java(11.0):是Java学习者使用的最

末初 · mochu7 2万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Shell脚本学习笔记(黑马程序员shell全套教程)

这篇Shell教程介绍Shell作为连接用户与Linux内核的桥梁,通过80讲系统课程从零基础到实战。内容涵盖Shell基础知识、运行原理、解析器类型等,讲解了Shell脚本作为编程语言的特点(含变量、函数、逻辑控制等),以及如何通过Shell命令提升Linux系统管理效率。教程附带MobaXterm终端工具使用说明,适合Windows用户进行SSH连接和Shell学习。

weixin_67732682的博客 1215

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

黑马程序员Java零基础 (1) 基础语法

跟着黑马程序员Java零基础视频教程的笔记.简要提纲版,有问题可以看视频解答.此篇是p1-p39.

qq_53077632的博客 1109

【黑马程序员java学习笔记】字符串

字符串的内容是不会发生改变的,它的对象在创建后不能被更改。- charAt方法可以根据索引获得字符串中的每个字符。可以看成一个容器,创建之后里面的内容是可变的。String replace(旧值,新值)根据身份证信息获得出生年月日和性别信息。

m0_48165967的博客 1113

黑马程序员之HTML学习笔记:HTML学习大纲

1:HTML基本标记 HTML文档结构 HTML段落标记 HTML换行标记 使用对齐属性 使用META标记 在HTML文档中使用特殊字符 标题标记      HTML 简介 段落级标记    块标记        、 字符级标记    . . . 列表          水平标尺标记   字体标记       2:基本标记 基本 HTML 元素 超链接

blog_优快云_xutingzhou 680

黑马程序员总结文档汇总

这篇日志,是这些日子以来观看传智播客视频写的一篇汇总文档,蓝色标识的超链接是doc类型的文档,绿色标识的超链接是思维导图类型的文档,同时两种类型的文档中每篇都提供了文档下载链接,详细内容如下:   黑马程序员 01 Java基础教学 - 01 - 认识Java                                黑马程序员 02 Java基础教学 - 02 - 走进Java

kongbeily的专栏 2143

“黑马程序员”基础测试

距我报名开始自学黑马,已经有一个月了。 期间还要工作

ZHOU_XIAO_BING的专栏 1005

黑马程序员C++学习总结【核心篇】

附:参考自哔哩哔哩黑马程序员所做的学习笔记

小幸运召唤师的博客 2269

黑马程序员Java教程学习笔记(五)

黑马程序员Java教程学习笔记

末初 · mochu7 2732

黑马程序员Python课程学习笔记1

1.数字(Number)2.字符串(String)3.列表(List)4.元组(Tuple)5.集合(Set)6.字典(Dictionary):注释不是程序,不能被执行,只是对程序代码进行解释说明,让别人能够看懂程序代码的作用,能够大大增强程序的可读性。字符串(string),又称文本,是由任意数量的字符如中文、英文、各类符号、数字等组成。·m,控制宽度,要求是数字(很少使用),设置的宽度小于数字自身,不生效。是用户在编程的时候所使用的一系列名字,用于给变量、类、方法等命名。.内容N)来输出多份内容。

2401_86364989的博客 1439
上一篇: 黑马程序员---学习笔记5:二维数组
下一篇: 黑马程序员---学习笔记7:指针
七分热度_HD
博客等级 码龄14年 12粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值