字符函数和字符串函数(详解大全)

news2024/11/15 15:40:56

重点

C语言中对字符和字符串的处理很是频繁,但是C语言本身是没有字符串类型的,字符串通常放在
常量字符串 中或者 字符数组 中。
字符串常量 适用于那些对它不做修改的字符串函数.

1.函数介绍

1.1strlen

size_t strlen ( const char * str );

⭐字符串已经 '\0' 作为结束标志,strlen函数返回的是在字符串中 '\0' 前面出现的字符个数(不包
含 '\0' )。

⭐参数指向的字符串必须要以 '\0' 结束。
⭐注意函数的返回值为size_t,是无符号的( 易错 )
⭐学会strlen函数的模拟实现

1.2strcpy

char* strcpy(char * destination, const char * source );

⭐源字符串必须以 '\0' 结束。
⭐会将源字符串中的 '\0' 拷贝到目标空间。
⭐目标空间必须足够大,以确保能存放源字符串。
⭐目标空间必须可变。
⭐学会模拟实现。

1.3strcat

char * strcat ( char * destination, const char * source );

⭐源字符串必须以 '\0' 结束。
⭐目标空间必须有足够的大,能容纳下源字符串的内容。
⭐目标空间必须可修改。
⭐字符串自己给自己追加,如何?

追加到前一个字符串(也得有\0)的末尾\0处!包含\0;

1.4strcmp

int strcmp  ( const char * str1, const char * str2 );

⭐第一个字符串大于第二个字符串,则返回大于0的数字
⭐第一个字符串等于第二个字符串,则返回0
⭐第一个字符串小于第二个字符串,则返回小于0的数字

1.5strncpy

char * strncpy ( char * destination, const char * source, size_t num );

⭐拷贝num个字符从源字符串到目标空间。
⭐如果源字符串的长度小于num,则拷贝完源字符串之后,在目标的后边追加0,直到num个。

1.6strncat

char * strncat ( char * destination, const char * source, size_t num );

讲source字符串的前num个字符加到destination的\0处;  

1.7strncmp

int strncmp ( const char * str1, const char * str2, size_t num );

对前num个字符进行比较大小!!!!!

1.8strstr

char * strstr ( const char *str1, const char * str2);

从str1中找到第一次出现str2字符串的位置,然后返回,如果找不到则返回空指针。

1.9strtok

char * strtok ( char * str, const char * sep );

⭐sep参数是个字符串,定义了用作分隔符的字符集合
第一个参数指定一个字符串,它包含了0个或者多个由sep字符串中一个或者多个分隔符分割的标
记。

⭐strtok函数找到str中的下一个标记,并将其用 \0 结尾,返回一个指向这个标记的指针。(注:
⭐strtok函数会改变被操作的字符串,所以在使用strtok函数切分的字符串一般都是临时拷贝的内容
并且可修改。)
⭐strtok函数的第一个参数不为 NULL ,函数将找到str中第一个标记,strtok函数将保存它在字符串
中的位置。
⭐strtok函数的第一个参数为 NULL ,函数将在同一个字符串中被保存的位置开始,查找下一个标
记。
⭐如果字符串中不存在更多的标记,则返回 NULL 指针。

写个代码举个栗子

#include<stdio.h>
#include<string.h>
int main()
{
    int str[]={1015332189@qq.com}
    int buf[100];
    strcpy(buf,str);//因为strtok会更改原来数组,所以为了不破坏原来的数据,就拷贝进一个新的数组中
    char *p="@.";//这个就是要从str找的标记集。
    char *s=NULL; //这个字符是用来接受strtok返回的地址的
    for(s=strtok(buf,p);s!=NULL;s=strtok(NULL,p))
    {

            printf("%s\n",s);

    }
       //这个函数虽然可以多次用,但是只需要第一次传数组,后面调用传空指针就可以了。

    return 0;
 
}

2.0 strerroe

char * strerror ( int errnum );

2.1memcpy

void * memcpy ( void * destination, const void * source, size_t num );

⭐函数memcpy从source的位置开始向后复制num个字节的数据到destination的内存位置。
⭐这个函数在遇到 '\0' 的时候并不会停下来。
⭐如果source和destination有任何的重叠,复制的结果都是未定义的。

2.2memmove

void * memmove ( void * destination, const void * source, size_t num );

⭐和memcpy的差别就是memmove函数处理的源内存块和目标内存块是可以重叠的。
⭐如果源空间和目标空间出现重叠,就得使用memmove函数处理。

2.2memset

2.3memcmp

int memcmp ( const void * ptr1,
const void * ptr2,
size_t num );

这个是用来比较两个数组指定长度内存块的大小

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux——centos7.4磁盘空间调整分配

安装centos7.4操作系统时&#xff0c;采用默认安装方式&#xff0c;导致磁盘分配不太合理&#xff0c;于是重新进行磁盘空间分配。 1、cnetos7.4默认安装完成时磁盘分配情况 可以看到/dev/mapper/centos-home分区占用大部分空间&#xff0c;如今想将根目录空间增大。 注意&…

pandas写入MySQL

安装好pandas、mysql pip install pandas pip install pymysql 导入pandas、mysql import pymysql as mysql import pandas as pd 建立连接 conmysql.connect(host10.10.0.221,userroot,passwordroot,databasepandas,port3306,charsetutf8) 创建游标 curcon.cursor() 读…

R语言处理数量很大(千万级及以上)的数据时的拆分策略-案例一

主要是用R中的groupb_by和 summarise分组查询和统计数据量

碰到it运维故障怎么办丫?突发IT事故怎么快速解决?

随着信息技术的快速发展&#xff0c;企业对于IT系统的依赖程度越来越高。但IT系统突发事件的风险也在不断增加&#xff0c;例如突发故障&#xff0c;例如数据泄露、例如数据入侵等等。那碰到这种it运维故障怎么办&#xff1f;突发IT事故怎么快速解决&#xff1f; 碰到it运维故障…

广度优先搜索(Breadth First Search, BFS)算法

广度优先搜索(Breadth First Search, BFS) 广度优先搜索是一种盲目搜索算法&#xff0c;它认为所有状态(或者说结点)都是等价的&#xff0c;不存在优劣之分。 假如我们把所有需要搜索的状态组成一棵树来看&#xff0c;广搜就是一层搜完再搜下一层&#xff0c;直到找出目标结点…

旅游业媒体套餐7个诀窍助你轻松实现销售目标-华媒舍

旅游业是一个竞争激烈的行业&#xff0c;成功营销对于吸引客户和实现销售目标至关重要。借助媒体资源是一种有效的方式。本文将介绍7个诀窍&#xff0c;借助旅游业媒体套餐轻松实现销售目标。 1. 策划细致的新闻稿 新闻稿是介绍旅游产品和服务的重要工具。确保新闻稿中包含吸引…

【精选】2023网络安全学习路线 非常详细 推荐学习

关键词&#xff1a;网络安全入门、渗透测试学习、零基础学安全、网络安全学习路线 分享2套零基础、进阶学习网络安全/渗透测试教程 第一套是Web安全学习笔记 该笔记详细介绍了计算机网络协议、信息收集、常见漏洞、内网渗透、御用技术等等&#xff0c;全文全面成体系&#x…

京东店铺所有商品数据接口及店铺商品数据分析

获取京东店铺所有商品数据的接口是京东开放平台提供的接口&#xff0c;通过该接口可以获取店铺所有商品数据。 通过京东开放平台接口获取店铺所有商品数据的方法如下&#xff1a; 在开放平台注册成为开发者并创建一个应用&#xff0c;获取到所需的 App Key 和 App Secret 等信…

PHP 基础/练习

练习 成绩定级 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>成绩定级脚本</title> </…

Windows 事件日志监控

Windows 事件日志是记录 Microsoft 系统上发生的所有活动的文件&#xff0c;在 Windows 环境中&#xff0c;将记录系统上托管的系统、安全性和应用程序的事件&#xff0c;事件日志提供包含有关事件的详细信息&#xff0c;包括日期、时间、事件 ID、源、事件类型和发起它的用户。…

spring cloud Eureka集群模式搭建(IDEA中运行)

spring cloud Eureka集群模式搭建&#xff08;IDEA中运行&#xff09; 新建springboot 工程工程整体目录配置文件IDEA中部署以jar包形式启动总结 新建springboot 工程 新建一个springboot 工程&#xff0c;命名为&#xff1a;eureka_server。 其中pom.xml文件为&#xff1a; …

el-input无法输入的问题和表单验证失败问题(亲测有效)-开发bug总结4

大部分无法输入的问题&#xff1a;基本都是没有进行v-model双向数据绑定&#xff0c;这个很好解决。 本人项目中遇到的bug问题如下&#xff1a; 点击添加&#xff0c;表单内可输入用户名 和 用户姓名&#xff0c;但有时会偶发出现无法这两个input框里面无法输入内容。 原因&a…

使用 Rust 开发:以太坊与 Layer2 生态建设新趋势

Rust 是一种系统编程语言&#xff0c;以其出色的性能、内存安全和并发性而闻名&#xff0c;在区块链和 Web3 中广泛应用&#xff0c;大多数编程语言和开发框架都以 Rust 为核心&#xff0c;如 Polkadot、Solana、NEAR、Elrond&#xff08;现名 MultiversX&#xff09;、Hyperle…

探索房产小程序源码中的十大必备功能

作为房地产行业的专家&#xff0c;我们深知房产小程序在实现高效交易和提升用户体验方面的重要性。选择适合的房产小程序源码&#xff0c;关乎着您的平台能否脱颖而出。在本文中&#xff0c;我将为您揭示房产小程序中不可或缺的十大必备功能&#xff0c;助您确保您的小程序具备…

CSDN 使用体验:一路向上

使用CSDN已经很多年了&#xff0c;这些年我真的在这一平台上收获了很多&#xff0c;而这些年CSDN自身也在不断进步&#xff0c;一步步成长&#xff0c;尤其是在最近的使用过程中&#xff0c;我感受到了CSDN前所未有的包容性、全面性&#xff0c;并且收获成就感。 包容性 随着…

Linux 下 Java 安装字体方法

因上线访问图字体乱码了&#xff0c;因为在windows下设置的微软雅黑&#xff0c;linux默认是没有的&#xff0c;所以需要给jdk安装一个微软雅黑字体。按照步骤来&#xff0c;so easy&#xff01; 1&#xff09;首先找到windows下面的字体&#xff0c;不用去其他地方下了&#…

干货:电视机顶盒哪个牌子好?双11必看网络机顶盒排行榜

电视机顶盒是我们必不可少的&#xff0c;新手们在面对众多品牌和产品是难免疑惑电视机顶盒哪个牌子好&#xff0c;双十一买哪款电视机顶盒最实惠&#xff1f;我将给大家分享的是业内公认的网络机顶盒排行榜&#xff0c;想知道哪些电视盒子品牌最值得买&#xff0c;看这篇就足够…

【vue】使用less报错:显示this.getOptions is not a function

在vue-cli中使用 lang“less” 时报错&#xff1a; Module build failed: TypeError: this.getOptions is not a function at Object.lessLoader 原因&#xff1a;版本过高所致&#xff0c;所用版本为 解决&#xff1a;降低版本&#xff1a;npm install less-loader4.1.0 --s…

c: Queue Calling in Ubuntu

/*** file TakeNumber.h* author your name (geovindu)* brief * version 0.1* date 2023-10-20* * copyright Copyright (c) 2023 站在巨人的肩膀上 Standing on the Shoulders of Giants* */#ifndef TAKENUMBER_H #define TAKENUMBER_H#include <stdio.h> #include <…

绝了!!AI写作神器,自动写小说真的牛

宝子们&#xff0c;这个写小说的神器有点牛&#xff01;尊的是宝藏写作神器啊&#xff01;分分钟写出小说&#xff0c;就连作文&#xff0c;论文都能写&#xff0c;这也太神了吧&#xff01; 使用炒鸡简单&#xff01;新手都能用 输入文字后就能得到你需要的文章 还有超多功…