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

举报
糖果罐子 发表于 2023/06/18 22:15:49 2023/06/18
【摘要】 @TOC 前言字符串操作函数是用于操作字符串的。有的函数有新版和旧版,大同小异。字符串操作函数的头文件: string.h 一、字符串拷贝函数:将字符串复制到一个数组里。字符串拷贝:char str [ 20] = { 0 };旧版:***strcpy ( str, “hello word” )***;新版: ***strcpy_s (str, 20,“hello world”)***; /...

@TOC

前言

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

一、字符串拷贝函数:

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

  1. 字符串拷贝:
    char str [ 20] = { 0 };
    旧版:***strcpy ( str, “hello word” )***;
    新版: ***strcpy_s (str, 20,“hello world”)***; / / 20用于保护赋值字符串不越界。
    在这里插入图片描述

  2. 字符串拷贝n个:(将字符串前n个拷贝)
    char str [20] = { 0 };
    旧版:***strncpy ( str,“hello world”,3)***; / / 多个一个n,3 就是要拷贝前3个字符。不带 \0
    新版:***strncpy_s (str,20,“hello world”,3)***; / / 自带 \0
    在这里插入图片描述

二、字符串拼接函数:

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

  1. 字符串拼接:
    char str[20] = { "hello "};
    旧版:***strcat ( str,“world”)***;
    新版:***strcat_s (str,20,“world”)***; / / 将world 接在hello的后面
    在这里插入图片描述

  2. 字符串拼接n个:(将一个字符串前n个拼接在另一个字符串的尾部)
    char str[20] = { "hello "};
    旧版:***strncat (str,“world”,3)***;
    新版:***strncat_s ( str,20,“world”,3)***;
    在这里插入图片描述

三、字符串比较函数:

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

  1. 字符串比较:
    int a = strcmp ( “abc”, “abc” ); / / 一样大,返回 0
    int b = strcmp ( “abr”, “abcde” ); / / 前大,返回 1
    int c = strcmp ( “abcde”, “ar” ); / / 后大,返回 -1
    在这里插入图片描述

  2. 字符串前 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个字符
    在这里插入图片描述

四、字符串长度函数:

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

  1. size_t a = strlen ( “abcd”); / / 长度是
    size_t b = strlen ( “abc\0def” ); / / 长度是3
    在这里插入图片描述
  2. 类比 sizeof 计算字节大小:
    size_t c = sizeof ( “abcd”); / / 5个字节,因为字符串最后有 \0
    size_t d = sizeof ( “abc\0def” );/ / 8个字节
    在这里插入图片描述

总结

注意:使用旧版需要加 #define _CRT_SECURE_NO_WARINGS
一般我们使用新版,不会有不必要的报错。

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

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。