C库函数使用与总结之字符串处理函数
1. memcpy(拷贝内存内容)
【头文件】#include <string.h>
【函数原型】void *memcpy(void *dest, const void *src, size_t len);
【函数说明】拷贝src所指的内存内容前len个字节到dest所指的内存地址上。与strcpy()不同的是,memcpy()会完整复制len个字节,不会因为遇到字符串结束符'\0'而结束。
【返回值】返回指向dest的指针。
【补充说明】指针src和dest所指的内存区域不可重叠。//使用memmove可以用来处理重叠区域。
【自定义实现】
void *memcpy(void *dest, const void *src, size_t len) { if(NULL == dest || NULL == src) { return NULL; // (void *)一定要返回一个指针 } char *tmpDest = dest; const char *tmpSrc = src; size_t i; ; i < len; i++) { tmpDest[i] = tmpSrc[i]; } return dest; }
2. memmove(拷贝内存内容)
【头文件】#include <string.h>
【函数原型】void * memmove(void *dest,const void *src,size_t n);
【函数说明】memmove()与 memcpy()一样都是用来拷贝 src 所指的内存内容前 n 个字节到 dest 所指的地址上。不同的是,当 src 和 dest 所指的内存区域重叠时,memmove()仍然可以正确的处理,不过执行效率上会比使用 memcpy()略慢些。
【返回值】返回指向dest的指针。
【补充说明】指针src和dest所指的内存区域可重叠。
3. atoi(将字符串转换为整型数)
【头文件】#include <stdlib.h>
【函数原型】int atoi(const char *nptr);
【函数说明】atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符才开始做转换,而再遇到非数字或字符串结束符时才结束转换,并将结果返回。
【返回值】返回转换后的整型数
【补充说明】与使用strtol(nptr, (char **)NULL, 10); 结果相同
【自定义实现】
int myAtoi(char *str) { , , i = ; while (str[i] == ' ') { i++; } if (str[i] == '-' || str[i] == '+') { sign = - * (str[i++] == '-'); } ') { || ( && str[i] - )) { ) return INT_MAX; else return INT_MIN; } * '); } return base * sign; }
4. strstr(在一字符串中查找指定的字符串)
【头文件】#include <string.h>
【函数原型】char *strstr(const char *haystack,const char *needle);
【函数说明】strstr()会从字符串 haystack 中搜寻字符串 needle,并将第一次出现的地址返回。
【返回值】返回指定字符串第一次出现的地址,否则返回 0。
【自定义实现】
char *strstr(char *haystack, char *needle) { int i, j; ; i<strlen(haystack); i++ ) ; j<strlen(needle); j++ ) if ( haystack[i] != needle[j] ) break; if(i>=strlen(haystack)) return NULL; else return &haystack[i]; }
C库函数使用与总结之字符串处理函数的更多相关文章
- 转:C语言字符串操作函数 - strcpy、strcmp、strcat、反转、回文
转自:C语言字符串操作函数 - strcpy.strcmp.strcat.反转.回文 C++常用库函数atoi,itoa,strcpy,strcmp的实现 作者:jcsu C语言字符串操作函数 1. ...
- C/C++中经常使用的字符串处理函数和内存字符串函数
一. 字符处理函数 1. 字符处理函数:<ctype.h> int isdigit(int ch) ;//是否为数字,即ch是否是0-9中的字符 int ...
- C语言字符串操作函数 - strcpy、strcmp、strcat、反转、回文
原文:http://www.cnblogs.com/JCSU/articles/1305401.html C语言字符串操作函数 1. 字符串反转 - strRev2. 字符串复制 - strcpy3. ...
- [VB.NET Tips]VB.NET专有的字符串处理函数
.NET Framework类库中含有专门为Visual Basic.NET程序员设计的函数和过程. 这些方法虽然是为VB.NET程序员设计的,但是也可以被.NET Framework上支持的任何语言 ...
- C++常用的string字符串截断函数
C++中经常会用到标准库函数库(STL)的string字符串类,跟其他语言的字符串类相比有所缺陷.这里就分享下我经常用到的两个字符串截断函数: #include <iostream> #i ...
- [转]C++字符串操作函数_tcschr、_tcsrchr
原文出处:https://blog.csdn.net/eickandy/article/details/50083169 C++标准库函数提供了字符和字符串的操作函数,并提供了其UNICODE版本,本 ...
- C学习笔记-字符串处理函数
字符串函数是最问常用的库函数之一,本文整理了常用的字符串函数,其来源为互联网 函数名: stpcpy 功 能: 拷贝一个字符串到另一个 用 法: char *stpcpy(char *destin, ...
- 20140902 字符串拷贝函数 右旋转字符串 string类的编写
1.strncpy字符串拷贝函数 //strncpy的程序 #include<stdio.h> #include<assert.h> char *strncpy1(char * ...
- VB常用字符串操作函数
1. ASC(X),Chr(X):转换字符字符码 [格式]: P=Asc(X) 返回字符串X的第一个字符的字符码 P=Chr(X) 返回字符码等于X的字符 [范例]: (1)P=Chr(65) ‘ 输 ...
随机推荐
- 你的日志组件记录够清晰嘛?--自己开发日志组件 Logger
现在现成的日志组件实在是太多太多,为什么我还需要自己实现呢????? 需求来源于java的log4j, [07-31 16:40:00:557:WARN : com.game.engine.threa ...
- c#获取光标在屏幕中位置
需要调用win32api,winform.wpf通用 代码如下: [DllImport("user32.dll")] public static extern bool GetCu ...
- C# 工作中遇到的几个问题
C# 工作中遇到的几个问题 1.将VS2010中的代码编辑器的默认字体“新宋体”改为“微软雅黑”后,代码的注释,很难对齐,特别是用SandCastle Help File Builder生成帮助文档 ...
- [修正] iOS 10 使用相机及相簿闪退的问题修正
iOS 10 新规定,在取用相机,相簿,联络资讯,麦克风需要在 Version Info 加入指定的 key,否则闪退: 注:将下面的 Key 复制到工程 Option -> Version I ...
- IDE有毒
程序员按项目性质大致有三种:写Demo的.写Proto的.写成品的:按项目开发周期大致有:写开头的.写中间的.写结尾的. Demo是样品,主要是表面上初步实现,临时忽悠客户用的,不一定要求继续演化: ...
- 用Kotlin改写PHP程序是什么样的体验
学Kotlin其实要看:http://kotlinlang.org/docs/kotlin-docs.pdf 在线版是不完整的!!!少了一些章节,会有点难看懂后面的文档. 我选择了WordPress里 ...
- TensorFlow知识总结
学习资料: 英文官方网站 Tensorflow 将要写的博客目录: 1.使用Spring AOP对异常进行统一处理 2.动态代理模式理解 aop中的动态代理模式 3.工厂模式三种的理解.logger ...
- 【JAVA并发编程实战】8、锁顺序死锁
package cn.study.concurrency.ch10; public class Account { private String staffAccount; //账号 private ...
- centos mysql php Curl
开放80端口 #/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT #/sbin/iptables -I INPUT -p tcp --dport ...
- 有问题得就分享(此实现不是 Windows 平台 FIPS 验证的加密算法的一部分)
今天呢,我写完了MD5加密算法的代码,可是我正高兴的想运行时,按了F5.突然了个这样的窗体 我当时就纳闷了,怎么回事? 代码又没有错,这是乍回事! 于是呢上网查了看看:可以这样解决的 在window中 ...