千家信息网

C语言的字符串转换函数怎么用

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇"C语言的字符串转换函数怎么用"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"C语
千家信息网最后更新 2026年10月31日C语言的字符串转换函数怎么用

这篇"C语言的字符串转换函数怎么用"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"C语言的字符串转换函数怎么用"文章吧。

字符串转整数

字符串转换为整数的函数有两个,他们的函数原型如下:

        int __cdecl atoi(const char *_Str);      long __cdecl atol(const char *_Str);

这两个函数的用法都很简单,atoi函数将字符串转换为整数int型,atol函数将字符串转换为长整形long int型。如果转换无效,返回值都为0,下面通过一个简单的例子看一下这两个函数的用法。

#include #include int main(int argc, char** argv){   int val;   long val_l;   char str[20];   strcpy(str, "1234");   val = atoi(str);   printf("字符串值 = %s, 整型值 = %d\n", str, val);   strcpy(str, "abc");   val = atoi(str);   printf("字符串值 = %s, 整型值 = %d\n", str, val);      strcpy(str, "98993489");   val_l = atol(str);   printf("\n字符串值 = %s, 长整型值 = %ld\n", str, val_l);   strcpy(str, "abc123");   val_l = atol(str);   printf("字符串值 = %s, 长整型值 = %ld\n", str, val_l);   return 0;}

给字符串赋不同的值,然后使用,atoi函数和atol函数对字符串进行转换,输出结果如下:

通过结果可以看出,只有当字符串有效时才能正确的转换成整数,否则转换的结果就为0。

将字符串转换为整数的函数还有以下两个:

long __cdecl strtol(const char * __restrict__ _Str,char ** __restrict__ _EndPtr,int _Radix);unsigned long __cdecl strtoul(const char * __restrict__ _Str,char ** __restrict__ _EndPtr,int _Radix);

strtol() 函数用来将字符串转换为长整型数(long),它有三个参数:

  • _Str 为要转换的字符串,

  • _EndPtr 为第一个不能转换的字符的指针,

  • _Radix 为字符串 str 所采用的进制。

trtol() 函数会将参数str字符串根据参数base来转换成长整型数(long)。参数base范围从2至36,或0。参数base代表str采用的进制方式,如base值为10则采用10进制,若base值为16则采用16进制等。

下面通过一个简单的例子演示一下strtol() 函数的用法。

#include #include int main(int argc, char** argv){        char str[30] = "123 -456 abc";        char *pEnd;        long ret1,ret2;        ret1 = strtol(str, &pEnd, 10);        ret2 = strtol(pEnd, &pEnd, 10);        printf("数字1是: %ld\n", ret1);        printf("数字2是: %ld\n", ret2);        printf("字符串部分是: %s \n", pEnd);        return 0;}

定义一个字符串,然后使用strtol() 函数转换字符串中的数字,输出结果如下:

通过打印的结果可以看出,strtol() 函数将字符串中的两个数字都成功换成为整数了。

当strtol() 函数读取字符串时,读取到第一个空格是,由于空白字符不能转换,所以函数返回,并将空白字符的存储在 pEnd中,接下来从空白位置继续转换,将字符串"-456"转换为数字之后,又遇到了空白字符,不能继续转换,函数退出,将第二个空白字符存储在 pEnd中,最后将剩余的字符串换打印出来。

通过strtol() 函数就可以智能的将字符串的数字提取出来。

strtoul 函数用来将字符串转换成无符号长整型数(unsigned long),它的用法和strtol() 函数基本一样。

修改上面的代码如下:

#include #include int main(int argc, char** argv){        char str[30] = "123 456 abc";        char *pEnd;        long ret1,ret2;        ret1 = strtoul(str, &pEnd, 10);        ret2 = strtoul(pEnd, &pEnd, 10);        printf("数字1是: %lu\n", ret1);        printf("数字2是: %lu\n", ret2);        printf("字符串部分是: %s \n", pEnd);        return 0;}

输出结果为:

如果在字符串的数字前面添加上负号,转换的结果就会出错。

在使用strtol() 函数和strtoul 函数时要注意两点:

  • 当 base 的值为 0 时,默认采用 10 进制转换,但如果遇到'0x' / '0X'前置字符则会使用 16 进制转换,遇到 '0' 前置字符则会使用 8 进制转换。

  • 若 endptr 不为NULL,则会将遇到的不符合条件而终止的字符指针由 endptr 传回;若 endptr 为 NULL,则表示该参数无效,或不使用该参数。

以上就是关于"C语言的字符串转换函数怎么用"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。

字符 字符串 函数 数字 参数 结果 进制 整数 两个 内容 空白 语言 输出 例子 指针 文章 知识 篇文章 部分 存储 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技垄断 科技与互联网发展 华宇互联网科技 互联网科技股票 互联网科技缩写 互联网科技网站 卫星互联网科技股票 青岛中康互联网医疗科技有限公司 中盈科技互联网信息有限公司 成都互联网科技公司100强 承德科技产业互联网发展 互联网系的金融科技公司 互联网科技教育视频 受益于互联网科技的高速发展 深圳市罗太互联网科技有限公司 黑科技 体验场景 互联网大会 上海钢联属于互联网科技股吗 领航科技大厦互联网公司 陕西九四连强互联网科技有限公司 互联网企业和网络科技有限公司 杭州互联网科技公司 山东吉时兔互联网科技有限公司 茂名市互联网科技产业园 岳阳华臻互联网科技有限公司 开一家科技互联网公司需要多少钱 互联网科技和法律行业 互联网领先科技宣传片 神州科技互联网有限公司 北京军民互联网科技公司 互联网科技创业计划的风险分析
0