在我们平常写的c/c++程序,一些算法题中,我们常常会用到c标准库中string.h文件中的函数,这些函数主要用于处理内存,字符串相关操作,是很有用的工具函数.而且有些时候,在笔试或面试中也会出现让你来实现某个函数的情况(比如strcpy).而且里面有些函数时间长不用就生疏了,本文就是要全面回顾这些函数. 1.NULL NULL是一个宏,可以扩展为空指针常量.空指针常量是一个等于零的整数常量表达式,后者是如(void *)0一样的从0转换为空指针void *.(A null-pointer co…
字符串输出函数 puts 格式:  puts(字符数组名) 功能:把字符数组中的字符串输出到显示器. 即在屏幕上显示该字符串. 字符串输入函数 gets 格式:  gets (字符数组名) 功能:从标准输入设备键盘上输入一个字符串. 本函数得到一个返回值,即为该字符数组的首地址. #include"stdio.h" main(){ ]; printf("input string:\n"); gets(st); puts(st); } 运行结果:…
我的strcat: char *strcat(char *dest,char *src) { char * reval = dest; while(*dest) dest++; while(*src) *dest++ = *src++ ; *dest = *src; return reval; } MSVC: char * __cdecl strcat ( char * dst, const char * src ) { char * cp = dst; while( *cp ) cp++; /…
我写的memchr: void *memchr(const void *buf, char ch, unsigned count){ unsigned ; while(*(buf++) != ch && cnt <= count){cnt++;} if(cnt > count) return NULL; else return buf; } 红色部分报错. 该错误为为ANSIC中认定的错误,是因为它坚持:进行算法操作的指针必须是确定知道其指向数据类型大小的. 但是GNU则不这么…
我的memcmp: int memcmp(void *buf1, void *buf2, unsigned int count){ int reval; while(count && !(reval = (*(unsigned char *)buf1) - (*(unsigned char *)buf2))) { buf1 = (unsigned ; buf2 = (unsigned ; --count; } return reval; } MS VC: int __cdecl memcm…
字符转换为数字: #include<stdlib.h> atoi();    将字符转换为整型                       例:char ch1;int i=atoi(ch1); atol();    将字符转化为长整型                  例:char ch2;long l=atol(ch2); atof();    将字符转化为浮点型                  例:char ch3;float f=atof(ch3); strtod(); 将字符串转化…
其他的库文件看起来没有什么实现层面的知识可以探究的,所以,直接来看stdio.h. 1.茶余饭后的杂谈,有趣的历史 在过去的几十年中,独立于设备的输入输出模型得到了飞速的发展,标准C从这个改善的模型中获益颇丰. 输入输出模块 在20世纪60年代早期,FORTRAN IV被认为是独立于机器的语言.但是如果不作任何改动,根本不可能在各种计算机体系结构中移动FORTRAN IV程序.可移植性的主要障碍是输入输出领域.在FORTRAN IV中,可以对FORTRAN IV代码中间的I/O语句中对正在通信的…
标准C++中的string类的用法总结 相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的确,MFC中的CString类使用起来真的非常的方便好用.但是如果离开了MFC框架,还有没有这样使用起来非常方便的类呢?答案是肯定的.也许有人会说,即使不用MFC框架,也可以想办法使用MFC中的API,具体的操作方法在本文最后给出操作方法.其实,可能很多人很可能会忽略掉标准C++中string类的使用.标准C++中提供的string类得功能也是非常强大的,一般都能满足我们开发项目时使用…
<C++ Primer 4th>读书摘要 最重要的标准库类型是 string 和 vector,它们分别定义了大小可变的字符串和集合.这些标准库类型是语言组成部分中更基本的那些数据类型(如数组和指针)的抽象.另一种标准库类型 bitset,提供了一种抽象方法来操作位的集合. 标准库string类型 有一种情况下,必须总是使用完全限定的标准库名字:在头文件中.理由是头文件的内容会被预处理器复制到程序中. #include <string> using std::string; 几种初…
STL笔记(6)标准库:标准库中的排序算法 标准库:标准库中的排序算法The Standard Librarian: Sorting in the Standard Library Matthew Austern http://www.cuj.com/experts/1908/austern.htm?topic=experts 用泛型算法进行排序    C++标准24章有一个小节叫“Sorting and related operations”.它包含了很多对已序区间进行的操作,和三个排序用泛型…