C语言字符串常用操作合集

C 语言字符串输出与长度计算:掌握 puts, fputs 和 strlen 本文详细介绍了C语言中常用的字符串输出函数,包括printf、puts和fputs,并探讨了如何计算字符串长度以及处理fgets输入时去除末尾换行符的方法。printf功能强大,支持格式化输出;puts自动在字符串末尾添加换行符,适合简单输出;fputs则提供更灵活的控制,不自动换行。此外,strlen函数用于计算字符串长度,结合fgets可以去除输入字符串中的换行符。这些工具和技巧有助于编写更高效、更安全的C语言程序。 阅读详情

C语言字符串常用操作合集

两种字符串的表达

有过c语言经验的应该知道,c语言里是没有字符串的,想要在c语言中使用字符串一共有两种方法去实现,一个是字符串数组,一种是通过指针的方式来表示,指针的方式又分为指针数组和数组指针

字符串数组

字符串数组的概念:

在 C 语言中,字符串实际上是使用 null 字符 ‘\0’ 终止的一维字符数组。因此,一个以 null 结尾的字符串,包含了组成字符串的字符。下面的声明和初始化创建了一个 “Hello” 字符串。由于在数组的末尾存储了空字符,所以字符数组的大小比单词 “Hello” 的字符数多一个。

char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};

依据数组初始化规则,可以把上面的语句写成以下语句:
char greeting[] = "Hello";

以下是 C/C++ 中定义的字符串的内存表示:
在这里插入图片描述
可以看到字符串数组在内存中是连续排列的

当然在实在书写字符串的时候并不需要在后面加一个\0 ,C 编译器会在初始化数组时,自动把 ‘\0’ 放在字符串的末尾。

如何创建一个字符串数组?
  1. 创建的同时不进行赋值 char greeting[10]
  2. 创建的同时进行赋值 char greeting[] = "Hello";
如何从键盘输入字符串数组?

从键盘中输入字符串数组最好是使用fgets方法,这样可以有效的避免越界的情况。内存越界的话可能会引起各种各样的问题,因为你也不知道约出去的内存地址会不会是其他变量的内存地址。
fgets(str,len,stdin)
fgets 函数有三个参数,第一个是你要输入的数组,第二个是指定可以输入的长度,一般填写sizeof(array)就可以了,stdin表示输入流。

如何复制字符串s2到字符串s1?

使用函数 strcpy(s1,s2)

如何拼接字符串?

使用函数strcat(s1, s2);

如何返回字符串s1的长度?

使用函数strlen(s1);

如何比较两个字符串是否相同?

使用函数strcmp(s1, s2);
如果 s1 和 s2 是相同的,则返回 0;如果 s1<s2 则返回小于 0;如果 s1>s2 则返回大于 0。

如何寻找字符串中的字符?

使用函数strchr(s1, ch);
返回一个指针,指向字符串 s1 中字符 ch 的第一次出现的位置。

如何寻找字符串中的字符串?

使用函数strstr(s1, s2);
返回一个指针,指向字符串 s1 中字符串 s2 的第一次出现的位置。

指针数组和数组指针

注意指针数组和数组指针是不一样的,指针数组是一个数组里面都是指针(array of pointers),而数组指针是一个指针指向一个数组(a pointer to an array)

下面的到底那种是数组指针哪种是指针数组呢:
A) int *p1[10];
B) int (*p2)[10];
“[]”的优先级比“*”要高。p1 先与“[]”结合,构成一个数组的定义,数组名为p1,int *修饰的是数组的内容,即数组的每个元素。那现在我们清楚,这是一个数组,其包含10 个指向int 类型数据的指针,即指针数组。至于p2 就更好理解了,在这里“()”的优先级比“[]”高,“*”号和p2 构成一个指针的定义,指针变量名为p2,int 修饰的是数组的内容,即数组的每个元素。数组在这里并没有名字,是个匿名数组。那现在我们清楚p2 是一个指针,它指向一个包含10 个int 类型数据的数组,即数组指针。 所以A是指针数组(array of pointers),B是数组指针(a pointer to an array)
下面是数组指针和指针数组的内存图:
在这里插入图片描述

如何给数组指针赋值

数组指针也叫做行指针,顾名思义数组指针的二维数组中是按行走的

int a[3][4];
int (*p)[4]; //该语句是定义一个数组指针,指向含4个元素的一维数组。
p=a;        //将该二维数组的首地址赋给p,也就是a[0]或&a[0][0]
p++;       //该语句执行过后,也就是p=p+1;p跨过行a[0][]指向了行a[1][]

所以数组指针也称指向一维数组的指针,亦称行指针。
使用数组指针来遍历数组?

char a[10];
printf("请输入:");
fgets(str,sizeof(a),stdin);
// a pointer to array
char *b = a;
while(*b!=0){
	printf("%c",*b);
	b++;
}
如何给指针数组赋值
int *p[3];
int a[3][4];
p++; //该语句表示p数组指向下一个数组元素。注:此数组每一个元素都是一个指针
for(i=0;i<3;i++) p[i]=a[i];
C 语言字符串的奥秘:从字符到 printf 格式化输出完全指南 通过本文的学习,我们了解了 C 语言中字符和字符串的基本概念,特别是字符串末尾的 ​​'\0'​​ 结束符。​​printf​​ 函数:功能强大,支持格式化输出各种数据类型(使用 ​​%c​​, ​​%s​​, ​​%d​​, ​​%f​​, ​​%p​​ 等占位符),适合复杂的输出需求。​​putchar​​ 函数:简单高效,只用于输出单个字符,适合简单的字符输出场景。理解这些基础知识是进行 C 语言编程,特别是处理文本数据和与用户交互的基础。在实际开发中,​​printf​。 阅读详情

相关推荐

C语言算法合集:从基础到高级应用

在计算机科学领域,算法是一系列定义明确的计算步骤,用于完成特定任务或解决问题。C语言作为一种广泛使用的编程语言,其简洁高效的特性使其成为实现算法的理想选择。本章将介绍C语言算法的基础知识,包括算法的基本概念、重要性以及如何在C语言中表达算法思想。排序算法可以根据其操作方式分类为比较排序和非比较排序。比较排序算法会通过比较元素的大小来决定元素的次序,其时间复杂度的下界为O(nlogn),而某些非比较排序算法如计数排序、基数排序和桶排序,它们的时间复杂度可达到线性,但这些算法有其适用的场景限制。

weixin_42451850的博客 1138

2021-05-27 C语言符号全集

C语言符号全集

qq799703655的博客 646

别再被手机厂商忽悠了!一文看懂光学变焦、数字变焦和混合变焦到底有啥区别

本文深入解析手机摄影中的光学变焦、数字变焦和混合变焦技术,揭示它们的工作原理和实际效果差异。光学变焦保持无损画质,数字变焦依赖算法放大,而混合变焦结合两者优势。帮助消费者识破厂商宣传,根据实际需求选择最适合的变焦方式,提升拍摄质量。

weixin_28717969的博客 413

【C语言】字符串合集

关于字符串的各种操作

请赐予我力量 927

新手必看:瑞萨MCU选型时,QFP、QFN、BGA这些封装到底该怎么选?(附选型避坑指南)

本文详细解析了瑞萨MCU选型中QFP、QFN、BGA等封装的特点与适用场景,提供实战避坑指南。通过对比封装的空间占用、散热能力、焊接难度等核心维度,帮助工程师根据具体需求选择最合适的芯片封装,避免因选型不当导致的高成本与生产问题。

weixin_26965807的博客 421

AURIX TC397开发板到手第一步:用iLLD库驱动LED流水灯(附完整代码)

本文详细介绍了如何使用英飞凌AURIX TC397开发板和iLLD库实现LED流水灯效果。从开发环境配置到硬件连接,再到完整的代码实现,逐步引导开发者完成项目。文章还提供了优化建议和常见问题解决方案,帮助嵌入式开发新手快速上手。

weixin_30911451的博客 391

c语言-字符串的操作

3.函数调用时会发生实参向形参空间的拷贝,实参将值拷贝给形参(一一对应),实参类型与形参类型不一致时,将实参类型默认转换为形参类型。两个字符串比较,从左到右每个字符进行比较,不相同的字符,谁的ASCII码值大,字符串就大。函数类型 函数名(数据类型1 形式参数1, 数据类型2 形式参数2, ...)3.函数类型应该与返回值的类型一致,如果不一致以函数类型为准。如果第一个字符串 > 第二个字符串,结果为 > 0 的值。如果第一个字符串 < 第二个字符串,结果为 < 0 的值。1.第一个字符串要空间足够大。

m0_71262188的博客 1658

黑客渗透测试后门隐藏技术揭秘

本文介绍了在授权渗透测试中隐藏后门文件(muma.exe)的多种技术手段。主要包括:通过WinRAR自解压脚本将后门与正常程序捆绑实现双开;利用系统自动运行目录和注册表实现开机自启;修改文件图标伪装成常用软件;将文件存放在冷门系统目录;设置系统+隐藏双重属性增强隐蔽性。此外还涉及对抗安全软件的加壳(UPX)、免杀(msfvenom编码)技术,以及进程注入、日志清除等运行隐藏方法。所有技术仅限合法授权测试使用,未经授权使用将面临法律责任。

m0_60781580的博客 1040

c语言中字符串的匿置 超级简单

c语言中字符串的匿置 超级简单很典型

hanxiaoqiag的专栏 956

使用基于物质点法(MPM)的Anura3D模拟沙柱坍塌

本博客使用开源软件Anura3D软件模拟了一个沙柱坍塌的过程,这个软件是基于基于物质点法(MPM)设计的

weixin_59902634的博客 4048

小梅哥Xilinx FPGA学习笔记11——亚稳态

亚稳态就是D触发器输入信号在其数据窗口期内发生变化,导致D触发器的输出进入一段时间的不稳定状态,有可能发生振荡,并最终随机稳定在高电平或者低电平。

m0_51430584的博客 631

C语言常用的字符串函数

ps:第一次用这玩意记录一下我还容易混淆的知识点,可能没那么精致哈,或者有些小错误,请见谅!咱就直接开始吧~ 一、字符串的长度 1.strlen函数 头文件:string.h 格式:strlen(字符串地址) 返值:返回字符串实际长度,不包含’\0’ char str[]="01234"; printf("%d\n",strlen(str)); 结果输出:5 二、字符串的复制 1.strcpy函数 头文件:string.h 格式:strcpy(字符数组,字符串) 返值:第一个参数的值,即一个字符的地

X_To_Y的博客 4621

2026年中科曙光嵌入式笔试试卷带答案

2026年中科曙光嵌入式笔试试卷涵盖数字电路、总线协议、时序分析、存储原理及硬件寄存器操作等核心知识点。单选题聚焦SPI/I2C差异、建立/保持时间、ADC作用等基础概念;多选题考察时序约束、非易失存储、BMC功能等综合应用;判断题强化对关键术语的理解;填空题考查基本术语记忆;简答题要求掌握SPI与I2C对比、时序违例后果及BMC管理机制。试题紧扣嵌入式系统开发实际,突出接口协议、时序设计与硬件交互能力,是嵌入式岗位选拔的重要依据。

Open 24

C语言程序设计·头歌实训合集

#C语言程序设计·头歌实训合集#冲刺学习!

醉蕤的博客 10万+

基于STM32设计的智能水产养殖系统(2025)_359

本设计提出并实现了一种基于STM32F103RCT6微控制器的智能水产养殖控制系统,针对传统水产养殖中人工依赖高、环境参数监测滞后、控制手段单一等问题,集成了TDS水质检测、水温检测、水位监测、自动喂食、自动充氧、换水控制与加热保温等功能。系统采用ESP8266模块实现WIFI联网,通过MQTT协议将关键数据上传至华为云物联网平台,支持Android手机APP和Windows上位机远程监测与控制。同时,系统具备本地LCD数据显示与蜂鸣器异常报警功能,支持本地按键控制操作。整套系统功能完善,响应灵敏,运行稳定

626

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

C语言入门教程合集

C语言结构紧凑,使用方便,程序执行效率高。有9种控制语句,32个关键字和34种运算符。数据结构丰富,可实现链表,树,栈等复杂的运算。语法不太严格,程序设计自由度大。程序可直接访问物理地址,对硬件操作,移植性好。...

YLG_lin的博客 8036

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

翁恺C语言程序设计网课笔记合集

一眨眼已经两年了。

jtwqwq的博客 1万+

WINCC7.3破解文件

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

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

《C语言<程序改错题练习合集(1)>》

海压竹枝低复举,风吹山角晦还明。” ——宋·陈与义《观雨》

m0_57859086的博客 9811

C语言题目合集

标题:2019下期C语言题目合集

qq_45844604的博客 7537

C语言操作字符串合集

c语言来操作字符串往往会不方便,这里将所有操作技巧集中起来,便于复习

nfty19的博客 248

C语言——字符串问题合集(1)

问题一:字符串反转 题目要求: 输入一个字符串(可包含任何非控制字符),对该字符串进行反转操作, 操作要求,只对字母进行反转,其他非字母字符都要求保留在原地。 输入格式:在一行输入长度不超过100的字符串输出格式:在一行输出对字符串中字母进行反转操作后的字符串 输入样例1: a-bC-d 输出样例1: d-Cb-a 输入样例2: He llo+world! 输出样例2: dl row+olleH! 解决思路: 分别从两头出发,遍历整个字符串,如果两边都是英.

weixin_60576482的博客 4003

在有C语言的基础上,快速学习python(C语言转战python)(python3)

我在学校里学习的是C语言,后因一些项目需要python,于是又自学了python为了减少看那些冗余内容的时间,特此整理一下python和C在编码方面不一样的地方参考来源给大家说一个不用下载Python编译环经就可以编程训练的网站(不能向python代码中输入input等终端输入)...

weixin_64982572的博客 6336

C语言字符串(0基础到深入剖析)---字符串系列合集(函数+指针+数组)

本篇旨在帮助不了解字符串或者逻辑梳理不够透彻的伙伴们理出一条脉络。选择能看懂的部分即可,。适用范围:0基础C语言(刚学字符串)- 学过函数 - 学过指针 ---大致了解了数据内存(栈、堆、静态区、常量区) --- C语言语法大成者。只是梳理逻辑,代码相对简单,对字符串的算法题型(洛谷,力扣)不涉及。这里不在赘述字符,字符数组的东西了。因为最开始学数据类型和数组时已经。

博客网站地址: https://arsenova.xyz 我会将优快云上的博客重修一部分迁移到网站上。 文章会做同步更新,但我不会在这个糟糕的平台多待1秒。下面是我要说的话,save your time. keep going 1344

c语言极限,C语言问题合集

作为C/C++第一个帖子,介绍一下竞赛中的C语言基本知识和C语言库函数使用技巧,文章的最后附有函数速查,如果对于例子不理解可以参考一下这个也希望大家能够支持DRS,共同让它复活Part 1:C语言一些基本常识:===================================================(一)C语言教材最著名的教材是〈C ProgrammingLanguage〉,但是个人感...

weixin_30898967的博客 564

【C语言】算法合集

#include<stdio.h> #include<string.h> //—判断回文字符串 int fun1(char *str) { int n=0,i; char *p=str; while(*p)n++,p++; for(i=0;i<n/2;i++) { if(str[i]==str[n-1-i]); else return -1; } ...

诗与浪子的博客 302

C/C++常用函数合集

目录 C标准库 头文件 1.memset() 2.memcpy() 3.strcpy() 4.strncpy() 5.strcat() 6.getline() 7.strlen() 头文件 1.tolower()/toupper() 2.isalpha(),isdigit(),isprint() 头文件 1.pow() 2.floor() 3.ceil() 4...

li_il的博客 3万+
上一篇: Mqtt.js 文档
下一篇: 发布:论文阅读批注网站PaperDecode.com【转载】
AndSonder
博客等级 码龄7年 364粉丝 154原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值