c语言 字符串操作函数 strcpy, strcat, strcmp, strlen.

简介: 字符串操作函数是用于操作字符串的。有的函数有新版和旧版,大同小异。字符串操作函数的头文件: string.h

前言


字符串操作函数是用于操作字符串的。有的函数有新版和旧版,大同小异。字符串操作函数的头文件: string.h


一、字符串拷贝函数:


将字符串复制到一个数组里。


字符串拷贝:

char str [ 20] = { 0 };
旧版:strcpy ( str, “hello word” );
新版: strcpy_s (str, 20,“hello world”); / / 20用于保护赋值字符串不越界。


f68c81743c42ea88007b2fa50900440.png

字符串拷贝n个:(将字符串前n个拷贝)

char str [20] = { 0 };
旧版:strncpy ( str,“hello world”,3); / / 多个一个n,3 就是要拷贝前3个字符。不带 \0
新版:strncpy_s (str,20,“hello world”,3); / / 自带 \0

88734dae42da652538a27c87e85be02.png

二、字符串拼接函数:


将一个字符串拼接在另一个字符串的尾部。


字符串拼接:

char str[20] = { "hello "};
旧版:strcat ( str,“world”);
新版:strcat_s (str,20,“world”); / / 将world 接在hello的后面

50bb20af7b31d2015456336c78bc4e1.png


字符串拼接n个:(将一个字符串前n个拼接在另一个字符串的尾部)

ceee9b281d91f609cf8b7ff02decac5.png

char str[20] = { "hello "};
旧版:strncat (str,“world”,3);
新版:strncat_s ( str,20,“world”,3);


三、字符串比较函数:


从头到尾依次比较,直到第一个不同的字符,此时谁大谁就大,否则相等。(比较就是比较两者的ASCII码值)


字符串比较:

int a = strcmp ( “abc”, “abc” ); / / 一样大,返回 0
int b = strcmp ( “abr”, “abcde” ); / / 前大,返回 1
int c = strcmp ( “abcde”, “ar” ); / / 后大,返回 -1

7c438356c0e478bd1ab17fbe67e3e38.png


字符串前 n 个比较:

int a = strncmp ( “abc”, “abc” ,1); / /1就是比较前1个字符
int b = strncmp ( “abr”, “abcde”,2 ); / / 2就是比较前2个字符
int c = strncmp ( “abcde”, “ar” ,2); / / 3就是比较前3个字符


18b90d9a346b395676d2733741a2919.png

四、字符串长度函数:


到 \0 终止计算长度,不算 \0。


size_t a = strlen ( “abcd”); / / 长度是
size_t b = strlen ( “abc\0def” ); / / 长度是3

5350cb98ab812f58fcea21d470c0c7f.png

类比 sizeof 计算字节大小:

size_t c = sizeof ( “abcd”); / / 5个字节,因为字符串最后有 \0
size_t d = sizeof ( “abc\0def” );/ / 8个字节

03501de9dcfdf1d04a6f71204d42ae6.png

总结

注意:使用旧版需要加 #define _CRT_SECURE_NO_WARINGS

一般我们使用新版,不会有不必要的报错。


这部分内容比较多,但是以后会经常用到,大家好好理解一下。

下一节讲 结构体。


目录
打赏
0
0
0
0
2
分享
相关文章
一文彻底搞清楚C语言的函数
本文介绍C语言函数:函数是程序模块化的工具,由函数头和函数体组成,涵盖定义、调用、参数传递及声明等内容。值传递确保实参不受影响,函数声明增强代码可读性。君志所向,一往无前!
31 1
一文彻底搞清楚C语言的函数
【C语言程序设计——函数】分数数列求和2(头歌实践教学平台习题)【合集】
函数首部:按照 C 语言语法,函数的定义首部表明这是一个自定义函数,函数名为fun,它接收一个整型参数n,用于指定要求阶乘的那个数,并且函数的返回值类型为float(在实际中如果阶乘结果数值较大,用float可能会有精度损失,也可以考虑使用double等更合适的数据类型,这里以float为例)。例如:// 函数体代码将放在这里函数体内部变量定义:在函数体中,首先需要定义一些变量来辅助完成阶乘的计算。比如需要定义一个变量(通常为float或double类型,这里假设用float。
88 3
【C语言程序设计——函数】分数数列求和1(头歌实践教学平台习题)【合集】
if 语句是最基础的形式,当条件为真时执行其内部的语句块;switch 语句则适用于针对一个表达式的多个固定值进行判断,根据表达式的值与各个 case 后的常量值匹配情况,执行相应 case 分支下的语句,直到遇到 break 语句跳出 switch 结构,若没有匹配值则执行 default 分支(可选)。例如,在判断一个数是否大于 10 的场景中,条件表达式为 “num> 10”,这里的 “num” 是程序中的变量,通过比较其值与 10 的大小关系来确定条件的真假。常量的值必须是唯一的,且在同一个。
76 2
|
11月前
|
C 语言函数完全指南:创建、调用、参数传递、返回值解析
函数是一段代码块,只有在被调用时才会运行。 您可以将数据(称为参数)传递给函数。 函数用于执行某些操作,它们对于重用代码很重要:定义一次代码,并多次使用。
265 3
C语言函数返回值详解
本文详细解析了C语言中函数返回值的概念与应用。从函数的基本定义入手,深入探讨了不同类型返回值的作用及意义,并提供了实用的编程示例,帮助读者更好地理解和使用函数返回值。通过本文,你将掌握如何有效利用返回值优化代码结构与功能实现。
C语言的函数返回值和指针
C|函数返回值(区分各类值)和指针(区分各类存储空间)的细节
C语言---函数---知识点总结(三)------函数的返回值类型
C语言---函数---知识点总结(三)------函数的返回值类型
C语言中向函数传递值和从函数返回值的技术解析
C语言中向函数传递值和从函数返回值的技术解析
123 0
|
11月前
|
在C语言中函数的返回值及其应用示例
在C语言中函数的返回值及其应用示例
164 2
|
11月前
|
C语言函数的返回值
C语言函数的返回值
113 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等