c-language: 库函数
来源:互联网 发布:淘宝的无印良品都是假 编辑:程序博客网 时间:2024/06/05 10:03
1. 字符串函数
strcpy:字符串复制
char* strcpy(char* dst,const char* src){ assert(dst!=NULL && src != NULL) char* ret = dest; while((*dst++=*stc++)!='\0') NULL; return ret;}
strncpy:字符串按长度复制
strncpy的功能和strcpy相似,只是它复制时多了一个终止条件。即是未遇到原串的’\0’,如果已经复制了n个字符(n为提供的参数长度),复制同样会终止。
char* strncpy(char* dest, const char* src, int len){ assert(dest!=NULL && src!=NULL); char* address = dest; while(len-- && *src!='\0') *dest++=*src++; *src='\0'; return address;}
strcmp:字符串比较
int strcmp(const char* s, const char* t){ assert(s!=NULL && t!=NULL); while(*s && *t && *s==*t){ ++s; ++t; } return (*s-*t);}
strncmp
int strncmp(const char* s, const char* t,unsigned int count){ assert(s!=NULL && t!=NULL); while(*s && *t && *s==*t && count--){ ++s; ++t; } return (*s-*t);}
strcat:字符串的链连接
char* strcat(char* strDest, const* strSrc){ assert(strDest!=NULL && strSrc!=NULL); char* address=strDest; while(*strDest!='\0') ++strDest; while((*strDest++ = *strSrc++)!='\0') NULL; return address;}
strncat
char* strncat(char* strDest,const char* strSrc, unsigned int count){ assert(strDest!=NULL && strSrc!=NULL); char* address=strDest; while(*strDest!='\0') ++strDest; while(count-- && *strSrc='\0') *strDest++ = *strSrc++; *strDest='\0'; return address;}
strlen: 字符串的长度
int strlen(const char* str){ assert(str!=NULL) int len=0; while(*str++!='\0') ++len; return len;}
strstr:字符串匹配
找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符)。返回该位置的指针,如找不到,返回空指针。
char * strstr (const char * str1,const char * str2){ char *cp = (char *) str1; char *s1, *s2; if ( !*str2 ) return((char *)str1); while (*cp){ s1 = cp; s2 = (char *) str2; while ( *s1 && *s2 && !(*s1-*s2) ) s1++, s2++; if (!*s2) return(cp); cp++; } return(NULL);}
atoi:将字符串转换成整型数
atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负号才开始做转换,而再遇到非数字或字符串时(’\0’)才结束转化,并将结果返回(返回转换后的整型数)。
#include <stdio.h> #include <assert.h> int atoi(const char* str) { int result = 0; int sign = 0; assert(str != NULL); // proc whitespace characters while (*str==' ' || *str=='\t' || *str=='\n') ++str; // proc sign character if (*str=='-') { sign = 1; ++str; } else if (*str=='+') { ++str; } // proc numbers while (*str>='0' && *str<='9') { result = result*10 + *str - '0'; ++str; } // return result if (sign==1) return -result; else return result; }
itoa:
value:欲转换的数据。string:目标字符串的地址。radix:转换后的进制数,可以是10进制、16进制等
char *itoa(int val, char *buf, unsigned radix) { char *p; char *firstdig; char temp; unsigned digval; p = buf; if(val <0) { *p++ = '-'; val = (unsigned long)(-(long)val); } firstdig = p; do{ digval = (unsigned)(val % radix); val /= radix; if (digval > 9) *p++ = (char)(digval - 10 + 'a'); else *p++ = (char)(digval + '0'); }while(val > 0); *p-- = '\0 '; do{ temp = *p; *p = *firstdig; *firstdig = temp; --p; ++firstdig; }while(firstdig < p); return buf; }
2. 内存函数
memcpy:内存复制
void *memcpy(void *memTo,const void* memFrom,size_t size){ assert((dst!=NULL)&&(src!=NULL)); char* tempTo=(char*)memTo; //保持menmTo的首地址 char* tempSrc=(char*)memSrc; while(size-- > 0) *tempSrc++=*tempTo++; return src;}
memset: 设置内存值
void *memset(void* buffer,int c,int count){ assert(src!=NULL) char* tempSrc=(char*)src; while(count--) *tempSrc++=(char)c; return src;}
0 0
- c-language: 库函数
- C language
- C LANGUAGE
- C库函数
- C库函数
- C库函数
- C库函数
- c 库函数
- c库函数
- C库函数
- C库函数
- c库函数
- c库函数
- c库函数
- C库函数
- c库函数
- C/C++, 字符库函数
- 040921 R C language
- Excel Sheet Column Number
- C++string类常用函数
- Android之NetworkOnMainThreadException异常
- segmentfault学习笔记
- 百度贴吧里见到的一道题
- c-language: 库函数
- WebtestRecorder---Selenium Webdriver脚本录制插件
- 通过 spring 容器内建的 profile 功能实现开发环境、测试环境、生产环境配置自动切换
- 转:作用域与上下文环境
- awk相关操作(简单举例查询IP地址)
- What are CBR, VBV and CPB?
- 【c++知识归纳】继承与多态(二)
- 多线程记录操作记录
- 当面临抉择的时候,如何决定何去何从?