广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >一起来学习C语言的字符串转换函数
  • 404
分享到

一起来学习C语言的字符串转换函数

2024-04-02 19:04:59 404人浏览 安东尼
摘要

字符串转整数 字符串转换为整数的函数有两个,他们的函数原型如下: int __cdecl atoi(const char *_Str); long __cdecl atol(

字符串转整数

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

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

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

#include <stdio.h>
#include <stdlib.h>
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函数对字符串进行转换,输出结果如下:

image.png

通过结果可以看出,只有当字符串有效时才能正确的转换成整数,否则转换的结果就为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范围从236,或0。参数base代表str采用的进制方式,如base值为10则采用10进制,若base值为16则采用16进制等。

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

#include <stdio.h>
#include <stdlib.h>
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() 函数转换字符串中的数字,输出结果如下:

image.png

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

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

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

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

修改上面的代码如下:

#include <stdio.h>
#include <stdlib.h>
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;
}

输出结果为:

image.png

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

image.png

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

  • 当 base 的值为 0 时,默认采用 10 进制转换,但如果遇到'0x' / '0X'前置字符则会使用 16 进制转换,遇到 '0' 前置字符则会使用 8 进制转换。
  • 若 endptr 不为NULL,则会将遇到的不符合条件而终止的字符指针由 endptr 传回;若 endptr 为 NULL,则表示该参数无效,或不使用该参数。

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!    

--结束END--

本文标题: 一起来学习C语言的字符串转换函数

本文链接: https://www.lsjlt.com/news/139719.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 一起来学习C语言的字符串转换函数
    字符串转整数 字符串转换为整数的函数有两个,他们的函数原型如下: int __cdecl atoi(const char *_Str); long __cdecl atol(...
    99+
    2022-11-13
  • C语言的字符串转换函数怎么用
    这篇“C语言的字符串转换函数怎么用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C语言的字符串转换函数怎么用”文章吧。字符串...
    99+
    2023-06-29
  • 从头学习C语言之字符串处理函数
    目录字符串处理函数:存放和使用字符串:获取字符串长度:strlen示例:拷贝字符串:strcpy和strncpy示例:strncpy:示例:连接字符串:strcat和strncat示...
    99+
    2022-11-13
  • C语言:字符函数和字符串函数(一篇拿捏字符串函数!)
    目录 求字符串长度: 1. strlen(字符串长度) 长度不受限制函数: 2. strcpy(字符串拷贝) 3. strcat(字符串追加) 4. strcmp(字符串比较) 长度受限制函数: 5. strncpy(字符串拷贝) 6. ...
    99+
    2023-10-02
    c语言 开发语言 深度学习 学习 笔记 c++ 算法
  • c语言如何将数字转换成字符串
    今天小编给大家分享一下c语言如何将数字转换成字符串的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。c语言将数字转换成字符串的方...
    99+
    2023-07-04
  • c语言字符串怎么转换成整数
    在C语言中,可以使用`atoi()`函数将字符串转换为整数。`atoi()`函数的声明如下:```int atoi(const ch...
    99+
    2023-09-21
    c语言
  • 学习Go语言文档中的strconv.Quote函数实现字符串转义
    学习Go语言文档中的strconv.Quote函数实现字符串转义,需要具体代码示例Go语言是一门强大的编程语言,具有丰富的标准库函数,其中strconv包提供了字符串和基本数据类型之间的转换功能。在strconv包中,有一个非常有用的函数Q...
    99+
    2023-11-03
    Go语言 字符串转义 strconvQuote
  • C语言实现将字符串转换成整数
    目录准备工作1.NULL指针2.空字符串3.空格4.正负号5.非法字符6.越界测试总结这是一个很有意思的问题。请不要把这个问题想的太简单了,考虑问题时应该尽可能的全面一些。请先思考并...
    99+
    2023-05-14
    C语言字符串转整数 C语言 字符串 整数
  • 学习Go语言文档中的strconv.Atoi函数实现字符串转整数
    学习Go语言文档中的strconv.Atoi函数实现字符串转整数Go语言是一门强大而灵活的编程语言,其标准库中的strconv包提供了字符串转换的功能。在这篇文章中,我们将学习如何使用strconv.Atoi函数将字符串转换为整数。首先,我...
    99+
    2023-11-03
    学习 Go语言 strconvAtoi函数
  • C语言的字符函数和字符串函数详解
    目录0. 前言1.函数介绍及部分函数模拟实现1.1 strlen模拟实现1.2 strcpy模拟实现1.3 strcat模拟实现1.4 strcmp 模拟实现1.5 str...
    99+
    2022-11-13
  • 学习Go语言文档中的strconv.QuoteToASCII函数实现ASCII字符串转义
    学习Go语言文档中的strconv.QuoteToASCII函数实现ASCII字符串转义,需要具体代码示例在Go语言开发中,我们经常需要处理字符串,包括字符串转义。Go语言提供了strconv包,其中的QuoteToASCII函数可以用来实...
    99+
    2023-11-04
    Go语言 strconv QuoteToASCII
  • 学习Go语言文档中的strconv.ParseFloat函数实现字符串转浮点数
    学习Go语言文档中的strconv.ParseFloat函数实现字符串转浮点数Go语言是一种高性能、可靠性强的编程语言,它被广泛应用于网络应用程序开发、云计算平台、分布式系统等领域。在Go语言中,字符串与浮点数之间的转换是开发过程中非常常见...
    99+
    2023-11-03
    Go语言 strconv ParseFloat
  • C语言如何把浮点数转换为字符串
    目录把浮点数转换为字符串1、把float/double格式化输出到字符串2、注意事项整型、浮点型和字符串间转换1.整型、浮点型——>字符串2.字符串——>整型、浮点型把浮...
    99+
    2022-11-12
  • C语言怎样把浮点数转换为字符串
    本篇文章为大家展示了C语言怎样把浮点数转换为字符串,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。把浮点数转换为字符串1、把float/double格式化输出到字符串标准的C语言提供了atof函数把字...
    99+
    2023-06-25
  • 一起来学习C语言的输入和输出
    目录一、scanf() 和 printf() 函数实例二、getchar() 和 putchar() 函数实例1实例2三、gets() 和 puts() 函数实例...
    99+
    2022-11-13
  • C语言的字符函数和字符串函数怎么用
    这篇文章主要讲解了“C语言的字符函数和字符串函数怎么用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言的字符函数和字符串函数怎么用”吧!一、字符&字符串函数1.strlen--求...
    99+
    2023-06-26
  • C语言实现字符串转浮点函数的示例
      字符串不仅可以转换为整数,也可以转换为浮点数,字符串转浮点数函数原型如下: float __cdecl __mingw_strtof (const ...
    99+
    2022-11-13
  • C语言如何实现将字符串转换成整数
    本文小编为大家详细介绍“C语言如何实现将字符串转换成整数”,内容详细,步骤清晰,细节处理妥当,希望这篇“C语言如何实现将字符串转换成整数”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。这是一个很有意思的问题。请不要...
    99+
    2023-07-05
  • 一起来了解c语言的str函数
    目录strlen:strcmp:strcpy:strcat:strstr:atoi:总结strlen: 用于求字符串长度,从首字符开始,到'\0'结束,'\0...
    99+
    2022-11-13
  • C语言封装函数字符串练习汇总分享
    目录封装函数: 判断闰年和平年封装函数: 字符串查找(参考strstr)封装函数: 字符串比较(参考strcmp)封装函数: 字符串拼接(参考strcat)封装函数: 字符串转整数(...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作