C语言string的几个函数虽然比较简单, 但是还是想总结在这里, 以免每次用到都要去查一下
strtol,strstr,strcat/strncat,strcpy/strncpy,strcmp/strncmp
1.strtol
【头文件与函数原型】:
#include <stdlib.h>
long int strtol(const char *nptr, char **endptr, int base);
【函数功能】:
把nptr中的字符串按照base指定的进制转换规则转换成long int数值,遇到base规则之外的字符停止,并把它的地址赋给*endptr
也可以将endptr赋值为NULL,表示不关心非法字符是什么
【参考博客】:
博客中记录了一些更详细的的注意事项
https://blog.csdn.net/zxx2096/article/details/81127858
【栗子】
root@ubuntu:/lianxi/lianxi_oj/string# gcc strtol.c
root@ubuntu:/lianxi/lianxi_oj/string# ./a.out
test1, ret = 1
ilegal:2345abc
test2, ret = 305420988
ilegal:G
test3, ret = 305420988
root@ubuntu:/lianxi/lianxi_oj/string#
1 #include <stdio.h>
2 #include <stdlib.h>
3
4 int main(int argc, char* argv[])
5 {
6 long int ret = 0;
7 char* stop = NULL;
8
9 char a[20] = "012345abc";
10 char b[20] = "012345ABCG";
11 char c[20] = "012345ABCG";
12 ret = strtol(a, &stop, 2);//ASCII '0','1'
13 printf("test1, ret = %ld\n", ret);
14 printf("ilegal:%s\n", stop);
15 putchar(10);
16
17 ret = strtol(b, &stop, 16);//ASCII '0'~'F'
18 printf("test2, ret = %ld\n", ret);
19 printf("ilegal:%s\n", stop);
20 putchar(10);
21
22 ret = strtol(c, NULL, 16);//ASCII '0'~'F'
23 printf("test3, ret = %ld\n", ret);
24 return (0);
25 }