再学C语言49:C库中的字符串函数

C库提供了很多处理字符串的函数;ANSI C用头文件 string.h 给出这些函数的原型

一、strlen()函数

功能:计算并返回字符串长度

示例代码:

/* test strlen() function */
#include <stdio.h>
#include <string.h>

int main(void)
{
    char arr[] = "good morning!";
    int cnt;

    cnt = strlen(arr);

    printf("length of \"%s\" is %d\n", arr, cnt);

    return 0;
}

运行结果:

ab4b6ef012b44a6c89495964b662c53c.png

二、strcat()函数

功能:接受两个字符串参数,将第二个字符串的一份拷贝添加到第一个字符串的结尾,使第一个字符串成为一个新的组合字符串,不改变第二个字符串

strcat()函数时char *(指向char的指针)类型,函数返回其第一个参数的值,即其后添加了第二个字符串的那个字符串中的第一个字符的地址

示例代码:

/* test of strcat() function */
#include <stdio.h>
#include <string.h>

int main(void)
{
    char arr1[100] = "good morning,"; // arr1的空间必须足够容纳添加了arr2之后的字符串长度
                                      // 否则数据会溢出
    char arr2[] = "good afternoon, and good night!";

    printf("%s\n", arr1);
    strcat(arr1, arr2);
    printf("%s\n", arr1);

    return 0;
}

运行结果:

ec911562beef4a628a6e67787b3148c7.png

三、strncat()函数

与strcat()函数功能类似,区别:

1)strcat()函数并不检查第一个数组是否能够容纳第二个字符串;如果没有给第一个数组分配足够的空间,多出来的字符会溢出到相邻的存储单元;需要将空字符考虑在内

2)strncat()函数比strcat()函数多一个参数,用于指明最多允许添加的字符的数目;需要将空字符考虑在内;到参数上限或遇到空字符(以二者中先符合的那个为准)则终止添加过程

示例代码:

/* test of strncat() function */
#include <stdio.h>
#include <string.h>

int main(void)
{
    char arr1[100] = "get busy living ";
    char arr2[] = "or get busy dying.";
    strncat(arr1, arr2, 2); // 第一次运行strncat()函数
    printf("%s\n", arr1); // 打印
    strncat(arr1, arr2, 20); // 第二次运行strncat()函数时,arr的内容已经改变了
    printf("%s\n", arr1); // 打印

    return 0;
}

运行结果:

f99c3eabec6d46808de30149b49fcc2a.png

注意:每运行一次strcat()函数或strncat()函数,第一个参数数组内的内容会被改变

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/7552.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据的存储--->【大小端字节序】(Big Endian)(Little Endian)

⛩️博主主页&#xff1a;威化小餅干&#x1f4dd;系列专栏&#xff1a;【C语言】藏宝图&#x1f38f; ✨绳锯⽊断&#xff0c;⽔滴⽯穿&#xff01;一个编程爱好者的学习记录!✨前言计算机硬件有两种存储数据的方式&#xff1a;大端字节序——Big Endian小端字节序——Little …

【Python】【进阶篇】十、Python爬虫的Requests库

目录十、Python爬虫的Requests库10.1 常用请求方法10.1.1 requests.get()10.1.2 requests.post()10.2 对象属性10.3 Requests库应用十、Python爬虫的Requests库 Python 提供了多个用来编写爬虫程序的库&#xff0c;除了前面已经介绍的 urllib 库之外&#xff0c;还有一个很重的…

vue尚品汇商城项目-day07【44.个人中心二级路由搭建+45.我的订单+46.优化登录跳转+47.独享守卫】

文章目录44.个人中心二级路由搭建45.我的订单46.优化登录跳转47.独享守卫本人其他相关文章链接44.个人中心二级路由搭建 修改代码&#xff1a; 将Center拆分为2个组件MyOrderGroupOrder src/router/routes.js import Center from /pages/Center import GroupOrder from /pages…

QT 常见控件使用

1. QLineEdit 添加控件后&#xff0c;可以编辑控件的名称&#xff0c;然后使用名称获取和设置值 QString qstrValue ui->strName->text(); QMessageBox::information(this, "提示", qstrValue); 2.窗体导航切换 添加新的对话框&#xff0c;然后引入头文件…

游戏安全漏洞一些分享

安全界对漏洞的定义为&#xff1a;在硬件、软件、系统等具体实现或者系统安全策略上存在的缺陷&#xff0c;从而使攻击者能够达到于某种破坏效果。游戏安全漏洞属于常规漏洞的子类&#xff0c;常规漏洞的分类如下图所示&#xff1a; 通过以上的漏洞分类图可知游戏漏洞属于常规…

MATLAB | 如何绘制github同款日历热力图

应粉丝要求&#xff0c;出一个类似于github热图的日历热力图&#xff0c;大概长这样&#xff1a; 依旧工具函数放在文末&#xff0c;如有bug请反馈并去gitee下载更新版。 使用教程 使用方式有以下几种会慢慢讲到&#xff1a; heatmapDT(Year,T,V)heatmapDT(Year,T,V,MonLim)h…

被称为“眼黄金”的叶黄素究竟是什么?叶黄素则能过滤蓝光

人眼视觉依赖于黄斑的中心凹陷。黄斑中含有大量的叶黄素&#xff0c;因此被称为“黄斑”。叶黄素&#xff0c;也被称为“眼黄金”&#xff0c;是人类视网膜中最重要的营养物质。它含有黄斑&#xff08;视觉中心&#xff09;和晶状体&#xff0c;特别是黄斑中含有高浓度的叶黄素…

外部中断实验

基础知识及实验目标 目标&#xff1a;通过中断来实现按键对小灯的控制。 WK_UP 翻转小灯&#xff1b; KEY 1控制 DS1按一次亮&#xff0c;再按一次灭&#xff1b;KEY 0控制DS0&#xff0c;按一次亮&#xff0c;再按一次灭。 触发中断的意思就是&#xff1a;当这个IO口达到触发…

MathType公式使用技巧汇总——Mathtype怎么在word中编辑公式?论文中公式有哪技巧?有哪些注意事项?论文中的公式怎么写?

文章目录1 Mathtype安装2 word 段落间插入公式3 文字间嵌入&#xff08;内联&#xff09;公式4 公式修改5 不要使用键盘上的括号等符号5.1 键盘上符号引发的问题5.2 正确的符号使用方法6 常用设置6. 1公式字体大小设置6.2 公式样式设置7 公式标号设置8 MathType怎么设置下一章公…

ESP-C3入门18. 低功耗蓝牙SPP Server端功能测试

ESP-C3入门18. 低功耗蓝牙SPP Server端功能测试一、功能简介1. GATT2. SPP3. SPP Server和 SPP Client二、 SPP Server开发步骤1. 启动 GATT Server2. SPP 任务初始化3. 注册 SPP应用程序4. UART 初始化5. UART 事件处理程序二、完整程序1. 代码和注释2. 运行方法一、功能简介 …

【SQL 必知必会】- 第八课 使用函数处理数据

目录 函数 函数带来的问题 可移植&#xff08;portable&#xff09; 是否应该使用函数&#xff1f; 使用函数 文本处理函数 SOUNDEX 支持 日期和时间处理函数 数值处理函数 函数 函数带来的问题 与几乎所有DBMS 都等同地支持SQL 语句&#xff08;如SELECT&#xff09;不同&am…

Selenium Web UI 自动化分布式运行:SeleniumGrid

简介&#xff1a;Selenium Grid是selenium的三大组件之一&#xff0c;它允许Selenium-RC针对规模庞大的测试案例集或者需要在不同环境中运行的测试案例集进行扩展。通过将客户端命令发送到远程浏览器的实例, Selenium Grid 允许在远程计算机 (虚拟或真实) 上执行WebDriver脚本.…

2016蓝桥杯C/C++B组

剪邮票 解题思路&#xff1a;做法很多&#xff0c;dx[], dy[]做出来不对&#xff0c;4*4 会出现16个方向重复了&#xff0c;只有四个方向要注意。 然后又看到网上的另一个做法使用全排列&#xff0c;用{1, 1 ,1,1,1 ,0&#xff0c;0&#xff0c;0&#xff0c;0}五个1&#xf…

Web漏洞-RCE代码及命令执行漏洞全解-web漏洞产生的原理及条件-墨者靶场详解

目录 一、导图 二、RCE漏洞简介 三、代码执行漏洞示例 四、命令执行漏洞示例 五、漏洞的产生条件 <网站原码层面> <网站应用层面> 六、漏洞检测 七、黑盒-应用层面-漏洞实例 八、白盒-代码层面-漏洞实例 九、黑盒-RCE公开漏洞-漏洞实例 十、漏洞产生的…

推箱子小游戏

文章目录一、 介绍二、 制作墙壁、地面三、 制作箱子四、 制作终点五、 制作人物移动六、 推箱子关键触发机制七、 终点设置八、 关卡切换设置九、 协程十、 下载一、 介绍 2D推箱子游戏是一种益智类游戏&#xff0c;玩家需要控制角色将箱子推到指定的位置&#xff0c;以完成关…

[Latex]特殊符号和花式字体

特殊符号 正体希腊字母 大写效果小写效果大写效果小写效果异体效果$\Alpha$A\AlphaA$\alpha$α\alphaα$\Beta$B\BetaB$\beta$β\betaβ\Gamma$Γ\GammaΓ$\gamma$γ\gammaγ$Delta$Δ\DeltaΔ$\delta$δ\deltaδ$\Zeta$Z\ZetaZ$\zeta$ζ\zetaζ$Epsilon$E\EpsilonE$\epsilon$…

Qt学习笔记

Qt学习笔记整理&#xff0c;内容主要包含&#xff1a; QT的概述创建QT的项目(hello qt)第一个窗口及窗口属性第一个按钮信号与槽机制带菜单栏的窗口对话框布局常见的控件QT消息机制以及事件绘图与绘图设备 笔记整理时间&#xff1a;2023年3月24日~2023年3月29日 代码仓库&#…

录音文件如何转换成文字文件?

当今社会&#xff0c;录音文件转换成文字文件的需求越来越多&#xff0c;例如会议记录、采访笔录、讲座笔记等。但是&#xff0c;手动逐词逐句转录录音文件费时费力&#xff0c;尤其是文件较大的情况下&#xff0c;会给人带来很大的烦恼。因此&#xff0c;本文将介绍几种常见的…

算法设计-hw2

一、从分治到动态规划 1.1 动态规划的性质 ​ 动态规划具有以下三个明显特性&#xff1a; 无后效性&#xff1a;如果给定某一阶段的状态&#xff0c;则在这一阶段以后过程的发展不受这阶段以前各段状态的影响。如果说的直白一些&#xff0c;就是当我们求出 dpidp_idpi​ 的时…

剑指 Offer 40. 最小的k个数 剑指 Offer 42. 连续子数组的最大和

剑指 Offer 40. 最小的k个数 输入整数数组 arr &#xff0c;找出其中最小的 k 个数。例如&#xff0c;输入4、5、1、6、2、7、3、8这8个数字&#xff0c;则最小的4个数字是1、2、3、4。 示例 1&#xff1a; 输入&#xff…