【string总结之一】C语言strtol函数

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 }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值