一,字符串操作

1 . strcpy : 拷贝

char *stpcpy(char *destin, char *source);

2 . strcat :  拼接

char *strcat(char *destin, char *source);

3 . strchr : 查找第一个字符匹配

char *strchr(char *str, char c);

strrchr : 查找最后一个匹配

char *strrchr(char *str, char c);

strstr : 查找第一个匹配字符串

char *strstr(const char *haystack, const char * needle);

4 . strcmp : 比较

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

看Asic码,str1>str2,返回值 > 0;两串相等,返回0

strncasecmp : 忽略大小写比较前n个

int strncasecmp(const char *s1, const char *s2, size_t n);

5 . strdup : 将串拷贝到新建的位置处

char *strdup(char *str);

#include <stdio.h>
#include <string.h>
#include <alloc.h> int main(void)
{ char *dup_str, *string = "abcde"; dup_str = strdup(string);
printf("%s\n", dup_str);
free(dup_str); return ; }

6 . strtok : 分隔

char * strtok(char *s, const char *delim);

char *strtok_r(char *str, const char *delim, char **saveptr);
strtok_r函数是strtok函数的可重入版本。str为要分解的字符串,delim为分隔符字符串。char **saveptr参数是一个指向char *的指针变量,用来在strtok_r内部保存切分时的上下文,以应对连续调用分解相同源字符串。
 
int in=0;
char buffer[INFO_MAX_SZ]="Fred male 25,John male 62,Anna female 16";
char *p[20];
char *buf=buffer;
char *outer_ptr=NULL;
char *inner_ptr=NULL;
while((p[in] = strtok_r(buf, ",", &outer_ptr))!=NULL) {
  buf=p[in];
  while((p[in]=strtok_r(buf, " ", &inner_ptr))!=NULL){
    in++;
    buf=NULL;
   }
  buf=NULL;
}
printf("Here we have %d strings/n",in);
for (int j=0; j<in; j++) {
  printf(">%s</n",p[j]);
}

 

7 . swab : 交换字符串n位

void swab (char *from, char *to, int nbytes);

二,转换数值类型

1 . strtod : 从字符串 中转换 double 类型数值,并将后续的字符串指针存储到 end 指向的 char* 类型存储。

double strtod(const char *nptr, char **endptr);
float strtof(const char *nptr, char **endptr);

2 .  atoi(p) 字符串转换到 int 整型 
  atof(p) 字符串转换到 double 符点数 
  atol(p) 字符串转换到 long 整型

#include <stdlib.h>

int atoi(const char *nptr);
long atol(const char *nptr);

double atof(const char *nptr);

三,字符检查 


int isalpha(int c) 检查是否为字母字符 
isupper() 检查是否为大写字母字符 
islower() 检查是否为小写字母字符 
isdigit() 检查是否为数字 
isxdigit() 检查是否为十六进制数字表示的有效字符 
isspace() 检查是否为空格类型字符 
iscntrl() 检查是否为控制字符 
ispunct() 检查是否为标点符号 
isalnum() 检查是否为字母和数字 
isprint() 检查是否是可打印字符 
isgraph() 检查是否是图形字符,等效于 isalnum() | ispunct()

四,scanf 

1 . sscanf : 从一个字符串中读进与指定格式相符的数据

int sscanf(const char *str, const char *format, ...);

sscanf("1 2 3","%d %d %d",buf1, buf2, buf3);

2 . sprintf : 把格式化的数据写入某个字符串缓冲区。

int sprintf( char *buffer, const char *format, [ argument] … );

五,mem

1 . memcpy : memcpy中dest和source中的区域不能重叠

void *memcpy(void *dest, const void *source, size_t count);

2 . memmove : 如果目标区域和源区域有重叠的话,memmove能够保证源串在被覆盖之前将重叠区域的字节拷贝到目标区域中。

void *memmove(void *dest, const void *source, size_t count)

**memcpy和memmove的区别

http://blog.chinaunix.net/uid-22780578-id-3346391.html

3 . memcmp :  比较内存区域buf1和buf2的前count个字节。

int memcmp(const void *s1, const void *s2, size_t n);

4 . mmap :

void* mmap(void* start,size_t length,int prot,int flags,int fd,off_t offset);

int munmap(void* start,size_t length);

port :

PROT_EXEC //页内容可以被执行
PROT_READ //页内容可以被读取
PROT_WRITE //页可以被写入
PROT_NONE //页不可访问

flags :

MAP_FIXED //使用指定的映射起始地址,如果由start和len参数指定的内存区重叠于现存的映射空间,重叠部分将会被丢弃。如果指定的起始地址不可用,操作将会失败。并且起始地址必须落在页的边界上。
MAP_SHARED //与其它所有映射这个对象的进程共享映射空间。对共享区的写入,相当于输出到文件。直到msync()或者munmap()被调用,文件实际上不会被更新。
MAP_PRIVATE //建立一个写入时拷贝的私有映射。内存区域的写入不会影响到原文件。这个标志和以上标志是互斥的,只能使用其中一个。
MAP_DENYWRITE //这个标志被忽略。
MAP_EXECUTABLE //同上
MAP_NORESERVE //不要为这个映射保留交换空间。当交换空间被保留,对映射区修改的可能会得到保证。当交换空间不被保留,同时内存不足,对映射区的修改会引起段违例信号。
MAP_LOCKED //锁定映射区的页面,从而防止页面被交换出内存。
MAP_GROWSDOWN //用于堆栈,告诉内核VM系统,映射区可以向下扩展。
MAP_ANONYMOUS //匿名映射,映射区不与任何文件关联。
MAP_ANON //MAP_ANONYMOUS的别称,不再被使用。
MAP_FILE //兼容标志,被忽略。
MAP_32BIT //将映射区放在进程地址空间的低2GB,MAP_FIXED指定时会被忽略。当前这个标志只在x86-64平台上得到支持。
MAP_POPULATE //为文件映射通过预读的方式准备好页表。随后对映射区的访问不会被页违例阻塞。
MAP_NONBLOCK //仅和MAP_POPULATE一起使用时才有意义。不执行预读,只为已存在于内存中的页面建立页表入口。

c语言字符串操作,及常用函数的更多相关文章

  1. C语言字符串操作常用库函数

    C语言字符串操作常用库函数 *********************************************************************************** 函数 ...

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

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

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

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

  4. C语言字符串操作总结大全(超详细)

    本篇文章是对C语言字符串操作进行了详细的总结分析,需要的朋友参考下 1)字符串操作  strcpy(p, p1) 复制字符串  strncpy(p, p1, n) 复制指定长度字符串  strcat( ...

  5. c语言字符串操作大全

     C语言字符串操作函数 函数名: strcpy 功  能: 拷贝一个字符串到另一个 用  法: char *stpcpy(char *destin, char *source); 程序例: #incl ...

  6. 1. python 字符串简介与常用函数

    1. python中的字符串简介与常用函数 在python中,字符串变成了一个强大的处理工具集,他是不可变的,也就是说字符串包含字符与字符的顺序,他不可以原处修改 字符串是我们后面需要学习的稍大一点的 ...

  7. 零基础学习C语言字符串操作总结大全

    本篇文章是对C语言字符串操作进行了详细的总结分析,需要的朋友参考下 1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, ...

  8. C语言字符串操作函数整理

    整理C语言字符串相关的函数,以程序方式验证,以注释方式做说明. #include<stdio.h> #include<string.h> #include<stdlib. ...

  9. C语言 字符串操作 笔记

    /* C语言字符串的操作笔记 使用代码和注释结合方式记录 */ # include <stdio.h> # include <string.h> int main(void) ...

随机推荐

  1. 使用ifconfig命令给网卡配置ip别名

    给网卡eth0配置一个ip别名 sudo ifconfig eth0:0 10.108.125.6/22 up 若想保存该配置,以便每次开机都可以使用该ip别名,则应 sudo vim /etc/ne ...

  2. 1.1 让CPU占用率曲线听你指挥[cpu manager]

    [本文链接] http://www.cnblogs.com/hellogiser/p/cpu-manager.html [题目] 写一个程序,让用户来决定Windows任务管理器(Task Manag ...

  3. 将文件放到Android模拟器的SD卡

    1.打开DDMS页面2.打开File Explorer页,如果没有,在Window –> Show View –>File Explorer3.一般就在mnt –> sdcard中4 ...

  4. javascript中json解密

    一直以前都会断断续续会碰到js中的json数据的解析,下面凭着自己的经验,简单的讲解一下在js中的json的几种解析方法.  一.jquery的方式 首先你得先得到数据,一般都是jquery的ajax ...

  5. nginx增加ssl服务方法

    1.将申请到的ssl加密证书文件拷贝到nginx的conf目录下 如:server.pem.server.key 2.vim nginx.conf 例子: server { listen 443 ss ...

  6. 【转】解决编译Apache出现的问题:configure: error: APR not found . Please read the documentation

    这里写的很清楚了,已验证可用 http://blog.csdn.net/linghao00/article/details/7926458

  7. Type InvokeMember()用法简介

    举例: Type tDate = typeof(System.DateTime); Object result = tDate.InvokeMember("Now", Bindin ...

  8. IE8上传文件时文件本地路径变成"C:\fakepath\"的问题

    转自:http://yunzhu.iteye.com/blog/1116893 在使用<input id="file_upl" type="file" / ...

  9. ☆☆在Eclipse中编译NDK的so文件(普通安卓项目转换为NDK项目的设定)

    1 将Native的编译链接配置加入项目中 2 进行编译 3  项目支持Native后,在首尾分别新增了两个编译过程

  10. HDU 4972 Bisharp and Charizard 想法题

    Bisharp and Charizard Time Limit: 1 Sec  Memory Limit: 256 MB Description Dragon is watching NBA. He ...