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库函数使用与总结之字符串处理函数的更多相关文章

  1. 转:C语言字符串操作函数 - strcpy、strcmp、strcat、反转、回文

    转自:C语言字符串操作函数 - strcpy.strcmp.strcat.反转.回文 C++常用库函数atoi,itoa,strcpy,strcmp的实现 作者:jcsu C语言字符串操作函数 1. ...

  2. C/C++中经常使用的字符串处理函数和内存字符串函数

    一.            字符处理函数 1.        字符处理函数:<ctype.h> int isdigit(int ch) ;//是否为数字,即ch是否是0-9中的字符 int ...

  3. C语言字符串操作函数 - strcpy、strcmp、strcat、反转、回文

    原文:http://www.cnblogs.com/JCSU/articles/1305401.html C语言字符串操作函数 1. 字符串反转 - strRev2. 字符串复制 - strcpy3. ...

  4. [VB.NET Tips]VB.NET专有的字符串处理函数

    .NET Framework类库中含有专门为Visual Basic.NET程序员设计的函数和过程. 这些方法虽然是为VB.NET程序员设计的,但是也可以被.NET Framework上支持的任何语言 ...

  5. C++常用的string字符串截断函数

    C++中经常会用到标准库函数库(STL)的string字符串类,跟其他语言的字符串类相比有所缺陷.这里就分享下我经常用到的两个字符串截断函数: #include <iostream> #i ...

  6. [转]C++字符串操作函数_tcschr、_tcsrchr

    原文出处:https://blog.csdn.net/eickandy/article/details/50083169 C++标准库函数提供了字符和字符串的操作函数,并提供了其UNICODE版本,本 ...

  7. C学习笔记-字符串处理函数

    字符串函数是最问常用的库函数之一,本文整理了常用的字符串函数,其来源为互联网 函数名: stpcpy 功 能: 拷贝一个字符串到另一个 用 法: char *stpcpy(char *destin, ...

  8. 20140902 字符串拷贝函数 右旋转字符串 string类的编写

    1.strncpy字符串拷贝函数 //strncpy的程序 #include<stdio.h> #include<assert.h> char *strncpy1(char * ...

  9. VB常用字符串操作函数

    1. ASC(X),Chr(X):转换字符字符码 [格式]: P=Asc(X) 返回字符串X的第一个字符的字符码 P=Chr(X) 返回字符码等于X的字符 [范例]: (1)P=Chr(65) ‘ 输 ...

随机推荐

  1. maven全局配置文件settings.xml详解

    概要 settings.xml有什么用? 如果在Eclipse中使用过Maven插件,想必会有这个经验:配置settings.xml文件的路径. settings.xml文件是干什么的,为什么要配置它 ...

  2. Xamarin.Android之Splash的几种简单实现

    对现在的APP软件来说,基本上都会有一个Splash页面,类似大家常说的欢迎页面.启动界面之类的. 正常来说这个页面都会有一些相关的信息,比如一些理念,Logo,版本信息等 下面就来看看在Xamari ...

  3. ASP.NET MVC自定义验证Authorize Attribute

    前几天Insus.NET有在数据库实现过对某一字段进行加密码与解密<使用EncryptByPassPhrase和DecryptByPassPhrase对MS SQLServer某一字段时行加密和 ...

  4. SQL高性能查询优化语句(总结)

    SQL 高性能查询优化语句,一些经验总结 1.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where ...

  5. 一款css3很美的iphone注册表单样式

    代码如下,保存到html文件打开: <!DOCTYPE html> <html lang=""> <head> <title>Ani ...

  6. spi 10方式编写

    //第一个CS变低的时候要sclk为高电平,第一个跳变沿进行赋值 module spi(input clk,input rst_n,output reg sclk,output reg cs,outp ...

  7. 从零开始学Python第七周:面向对象进阶(需修改)

    一,类的属性 (1)示例 通过属性获取已经创建对象的个数 class Plane: pCount = 0 #类属性 def __init__(self,name,category): self.nam ...

  8. [ASP.NET Core] Getting Started

    前言 本篇文章介绍如何快速建立一个ASP.NET Core应用程序,为自己留个纪录也希望能帮助到有需要的开发人员. ASP.NET Core官网 环境 建立一个ASP.NET Core应用程序,首先要 ...

  9. Javascript中addEventListener和attachEvent的区别

    在利用javascript为DOM Element添加事件处理程序时,如果要想下兼容IE6,7时,就不得不考虑addEventListener与attachEvent的异同. 1.首先说下addEve ...

  10. 基于WebGL的三维地形渲染

    1.生成WebMap页面 #!/usr/bin/env python # -*- coding: utf-8 -*- import subprocess from jinja2 import Envi ...