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

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


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

下一节讲 结构体。


相关文章
|
3月前
|
存储 C语言 开发者
【C语言】字符串操作函数详解
这些字符串操作函数在C语言中提供了强大的功能,帮助开发者有效地处理字符串数据。通过对每个函数的详细讲解、示例代码和表格说明,可以更好地理解如何使用这些函数进行各种字符串操作。如果在实际编程中遇到特定的字符串处理需求,可以参考这些函数和示例,灵活运用。
117 10
|
4月前
|
存储 算法 C语言
C语言中常见的字符串处理技巧,包括字符串的定义、初始化、输入输出、长度计算、比较、查找与替换、拼接、截取、转换、遍历及注意事项
本文深入探讨了C语言中常见的字符串处理技巧,包括字符串的定义、初始化、输入输出、长度计算、比较、查找与替换、拼接、截取、转换、遍历及注意事项,并通过案例分析展示了实际应用,旨在帮助读者提高编程效率和代码质量。
215 4
|
5月前
|
C语言 C++
【C语言】解决不同场景字符串问题:巧妙运用字符串函数
【C语言】解决不同场景字符串问题:巧妙运用字符串函数
|
5月前
|
存储 C语言
【c语言】字符串函数和内存函数
本文介绍了C语言中常用的字符串函数和内存函数,包括`strlen`、`strcpy`、`strcat`、`strcmp`、`strstr`、`strncpy`、`strncat`、`strncmp`、`strtok`、`memcpy`、`memmove`和`memset`等函数的使用方法及模拟实现。文章详细讲解了每个函数的功能、参数、返回值,并提供了具体的代码示例,帮助读者更好地理解和掌握这些函数的应用。
84 0
|
6月前
|
存储 C语言
【C语言基础考研向】10 字符数组初始化及传递和scanf 读取字符串
本文介绍了C语言中字符数组的初始化方法及其在函数间传递的注意事项。字符数组初始化有两种方式:逐个字符赋值或整体初始化字符串。实际工作中常用后者,如`char c[10]="hello"`。示例代码展示了如何初始化及传递字符数组,并解释了为何未正确添加结束符`\0`会导致乱码。此外,还讨论了`scanf`函数读取字符串时忽略空格和回车的特点。
157 8
|
5月前
|
存储 安全 编译器
深入C语言库:字符与字符串函数模拟实现
深入C语言库:字符与字符串函数模拟实现
|
5月前
|
C语言
C语言常见字符函数和字符串函数精讲
C语言常见字符函数和字符串函数精讲
|
5月前
|
C语言
【C语言】模拟实现深入了解:字符串函数
【C语言】模拟实现深入了解:字符串函数
|
5月前
|
Serverless 编译器 C语言
【C语言】指针篇- 深度解析Sizeof和Strlen:热门面试题探究(5/5)
【C语言】指针篇- 深度解析Sizeof和Strlen:热门面试题探究(5/5)
|
10月前
|
存储 C语言
C 语言函数完全指南:创建、调用、参数传递、返回值解析
函数是一段代码块,只有在被调用时才会运行。 您可以将数据(称为参数)传递给函数。 函数用于执行某些操作,它们对于重用代码很重要:定义一次代码,并多次使用。
257 3