出于对C的不够熟悉,在读代码的过程中,平凡出现的字符串处理函数,成为了一个理解代码的大问题。
为了更方便的读取和理解代码,特意将接触到的字符串处理函数列出,方便查询:
1.strstr(str1,str2) 用于判断字符串str2是否是str1的子串。 如果是,则返回str2在str1中首次出现的地址;否则,返回NULL。 可以用在对字符串限定的时候进行判断,以及字符串处理过程中用来调整指向字符串的指针位置。
2.*strtok_r(char *str, const char *delim, char *saveptr) 用于分割str字符串。 delim为分隔符字符串,saveptr指针变量,用来保存切分时的上下文。 与strtok不同,strtok_r可以使str为NULL,saveptr继承原本的地址,从而对strtok_r返回的参数进行二次分割。
3.*strcat(char *dest,char *src) 把src所指字符串添加到dest结尾处(覆盖dest结尾处的' ')。 src和dest所指内存区域不可重叠且dest必须有足够的空间,返回指向dest的指针
4.strrchr(string,char) 查找字符在指定字符串中从后面开始的第一次出现的位置。 如果成功,返回指定字符最后一次出现位置的地址,如果失败,则返回 false。 与之相对应的是strchr()函数,它查找字符串中首次出现指定字符的位置。
5.strcasecmp (const char *s1, const char *s2) ----strcmp 用来比较参数s1和s2字符串,比较时会自动忽略大小写的差异。 返回值是重点 若参数s1和s2字符串相等则返回0。 s1大于s2则返回大于0 的值,s1 小于s2 则返回小于0的值。
6.*strcpy(char* dest, const char *src) 把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间 src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串 返回指向dest的指针
7. *strdup(char *s) 将串拷贝到新建的位置处 strdup()在内部调用了malloc()为变量分配内存, 不需要使用返回的字符串时,需要用free()释放相应的内存空间, 否则会造成内存泄漏。
8. int atoi(const char *nptr);
参数nptr字符串,如果第一个非空格字符存在,是数字或者正负号则开始做类型转换,之后检测到非数字(包括结束符 ) 字符时停止转换,返回整型数。否则,返回零。