C关于字符串操作的库函数实现总结
常用C关于字符串操作的库函数实现:
- //获取字符串长度
- int Strlen(const char* s) {
- assert(s != NULL);
- int len = ;
- while (*s++ != '\0') {
- len++;
- }
- return len;
- }
- //将src字符串复制到dest中
- char* Strcpy(char* dest, const char* src) {
- assert(dest != NULL && src != NULL);
- char* p = dest;
- while ((*dest++ = *src++) != '\0');
- return dest;
- }
- //将src字符串前n个字符复制到dest中
- char* Strncpy(char* dest, const char* src, int n) {
- assert(dest != NULL && src != NULL);
- char* p = dest;
- int m = ;
- while (*p++ != '\0') {
- m++;
- }
- if (n > m)
- return NULL;
- p = dest;
- while (n--) {
- *p++ = *src++;
- }
- return dest;
- }
- //比较两个字符串大小
- int Strcmp(const char* str1, const char* str2) {
- assert(str1 != NULL && str2 != NULL);
- while (*str1 && *str2 && *str1 == *str2) {
- str1++;
- str2++;
- }
- return *str1 - *str2;
- }
- //将src字符串连接到dest字符串后面
- char* Strcat(char* dest, const char* src) {
- assert(dest != NULL && src != NULL);
- char* p = dest;
- while (*p++ != '\0');
- p--;
- while ((*p++ = *src++) != '\0');
- return dest;
- }
- /*
- * memcpy函数用于资源内存(src指向的内存)拷贝到目标内存(dest指向的内存);拷贝的个数size
- * 用法::(1)可以拷贝任何类型的对象,因为函数的参数类型是void* ,由于函数拷贝是一个字节一个
- * 字节拷贝,实际操作是将void*强制转换成了char*,这样才能保证每一次加一个指针
- */
- void Memcpy(char* dest, const char* src, size_t n) {
- assert(dest != NULL && src != NULL);
- char* pDest = (char*)dest;
- const char *pSrc = (const char*)src;
- if (pDest <= pSrc || pSrc + n <= pDest) {
- while (n--) {
- *pDest++ = *pSrc++;
- }
- } else {
- pDest += n - ;
- pSrc += n - ;
- while (n--) {
- *pDest-- = *pSrc--;
- }
- }
- }
- //memset内部实现memset(void*s,int ch,size_t n)
- /*将dest所指向的某一块内存中的前n个字节的内容全部设置为ch指定的ASCII值,返回s*/
- void* Memset(void* dest, int ch, size_t n) {
- assert(dest != NULL && n >= );
- char* p = (char*)dest;
- while (n--) {
- *p++ = (char)ch;
- }
- return dest;
- }
C关于字符串操作的库函数实现总结的更多相关文章
- C语言字符串操作常用库函数
C语言字符串操作常用库函数 *********************************************************************************** 函数 ...
- 实现C语言字符串操作的库函数 包括基本的字符串复制 字符串长度 字符串比较等多种函数(C代码)
头文件 "mystring.h" #ifndef _MYSTR_H #define _MYSTR_H #include <stdio.h> #include <s ...
- 转:C语言字符串操作函数 - strcpy、strcmp、strcat、反转、回文
转自:C语言字符串操作函数 - strcpy.strcmp.strcat.反转.回文 C++常用库函数atoi,itoa,strcpy,strcmp的实现 作者:jcsu C语言字符串操作函数 1. ...
- C语言的本质(22)——C标准库之字符串操作
编译器.浏览器.Office套件等程序的主要功能都是符号处理,符号处理功能在程序中占相当大的比例,无论多复杂的符号处理都是由各种基本的字符串操作组成的,下面介绍如何用C语言的库函数做字符串初始化.取长 ...
- C语言字符串操作函数 - strcpy、strcmp、strcat、反转、回文
原文:http://www.cnblogs.com/JCSU/articles/1305401.html C语言字符串操作函数 1. 字符串反转 - strRev2. 字符串复制 - strcpy3. ...
- 九度OJ 1206:字符串连接 (字符串操作)
时间限制:1 秒 内存限制:128 兆 特殊判题:否 提交:4127 解决:1957 题目描述: 不借用任何字符串库函数实现无冗余地接受两个字符串,然后把它们无冗余的连接起来. 输入: 每一行包括两个 ...
- C++字符串操作笔试题第二波
//1.字符串替换空格:请实现一个函数,把字符串中的每一个空格替换成"%20". //比如输入"we are happy.".则输出"we%20are ...
- VC++ 字符串操作学习总结
vc++中各种字符串(转载) http://www.cnblogs.com/tomin/archive/2008/12/28/1364097.html CString ,BSTR ,LPCTSTR之间 ...
- Java中的字符串操作(比较String,StringBuiler和StringBuffer)
一.前言 刚开始学习Java时,作为只会C语言的小白,就为其中的字符串操作而感到震撼.相比之下,C语言在字节数组中保存一个结尾的\0去表示字符串,想实现字符串拼接,还需要调用strcpy库函数或者自己 ...
随机推荐
- 数据库连接windows身份验证、sql验证
windows身份验证:"server=.;database=Northwind;Integrated Security=True;" sql验证:"server=.;d ...
- 简单的尝试下angr
0x00:前言 之前接触到了符号执行,可以用于程序的自动化分析,感觉还是比较神奇,工业上的具体用法不是很清楚,不过在CTF中这个东西慢慢在流行...从defcon 2016就可以看出(有很多人解re用 ...
- 灰度图像--频域滤波 傅里叶变换之离散时间傅里叶变换(DTFT)
学习DIP第22天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan,欢迎大家转载,发现博客被某些论坛转载后,图像无法正常显示,无法正常表达本人观点,对此表示很不 ...
- 数据分析-excel数据分析(数据分析师岗位分析)
使用的函数:字符截取函数:LEFT(),MID() 定位函数:FIND() 统计函数:COUNTIF() 1.获取薪资的区间的最小值min和最大值max 处理方法:新插入多列,使用find()定 ...
- 基于libcurl的restfull接口 post posts get gets
头文件 #pragma once #ifndef __HTTP_CURL_H__ #define __HTTP_CURL_H__ #include <string> #include &q ...
- scrapy_redis的使用
配置Scrapy-Redis 配置Scrapy-Redis非常简单,只需要修改一下settings.py配置文件即可. 1. 核心配置 首先最主要的是,需要将调度器的类和去重的类替换为Scrapy-R ...
- 20191114-3 Beta阶段贡献分配
此作业要求参见:https://edu.cnblogs.com/campus/nenu/2019fall/homework/10006 要求1 每位组员的贡献分值 贺敬文:10 王志文:9 彭思雨:8 ...
- TCP之RST报文段
TCP 首部中的 RST 比特是用于 "复位" 的.一般来说,无论何时一个报文段发往基准的连接(referenced connection)出现错误,TCP 都会发出一个复位报文段 ...
- mongodb 单节点集群配置 (开发环境)
最近项目会用到mongodb的oplog触发业务流程,开发时的debug很不方便.所以在本地创建一个单台mongodb 集群进行开发debug. 大概:mongodb可以产生oplog的部署方式应该是 ...
- windos批处理启动redis与哨兵
为各个启动单独建立脚本后用总的bat调用 创建脚本,redis6379.bat脚本内容:@echo offtitle redis-serverset ENV_HOME6379="G:\Red ...