当前位置: 首页 > 编程笔记 >

C语言中一些将字符串转换为数字的函数小结

麻茂材
2023-03-14
本文向大家介绍C语言中一些将字符串转换为数字的函数小结,包括了C语言中一些将字符串转换为数字的函数小结的使用技巧和注意事项,需要的朋友参考一下

C语言atoi()函数:将字符串转换成int(整数)
头文件:

#include <stdlib.h>

atoi() 函数用来将字符串转换成整数(int),其原型为:

int atoi (const char * str);

【函数说明】atoi() 函数会扫描参数 str 字符串,跳过前面的空白字符(例如空格,tab缩进等,可以通过 isspace() 函数来检测),直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回。

【返回值】返回转换后的整型数;如果 str 不能转换成 int 或者 str 为空字符串,那么将返回 0。

范例:将字符串a 与字符串b 转换成数字后相加。

#include <stdio.h>
#include <stdlib.h>
int main ()
{
 int i;
 char buffer[256];
 printf ("Enter a number: ");
 fgets (buffer, 256, stdin);
 i = atoi (buffer);
 printf ("The value entered is %d.", i);
 system("pause");
 return 0;
}

执行结果:

Enter a number: 233cyuyan
The value entered is 233.


C语言atof()函数:将字符串转换为double(双精度浮点数)
头文件:

#include <stdlib.h>

atol() 函数的名字源于“ascii to long”,用来将字符串转换成长整型数(long),其原型为:

  long atol(const char * str);

【函数说明】atol() 会扫描参数 str 字符串,跳过前面的空白字符(例如空格,tab缩进等,可以通过 isspace() 函数来检测),直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回。

【返回值】返回转换后的长整型数(long);如果 str 不能转换成 long 或者 str 为空字符串,那么将返回 0。

示例:将输入的字符串转换成long。

#include <stdio.h>
#include <stdlib.h>
int main ()
{
 long int li;
 char buffer[256];
 printf ("Enter a long number: ");
 fgets(buffer, 256, stdin);
 li = atol(buffer);
 printf ("The value entered is %ld.\n", li);
 system("pause");
 return 0;
}

执行结果:

Enter a long number: 1200cyuyan
The value entered is 1200.


C语言atof()函数:将字符串转换为double(双精度浮点数)
头文件:

#include <stdlib.h>

函数 atof() 用于将字符串转换为双精度浮点数(double),其原型为:

double atof (const char* str);

atof() 的名字来源于 ascii to floating point numbers 的缩写,它会扫描参数str字符串,跳过前面的空白字符(例如空格,tab缩进等,可以通过 isspace() 函数来检测),直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回。参数str 字符串可包含正负号、小数点或E(e)来表示指数部分,如123. 456 或123e-2。

【返回值】返回转换后的浮点数;如果字符串 str 不能被转换为 double,那么返回 0.0。

温馨提示:ANSI C 规范定义了 stof()、atoi()、atol()、strtod()、strtol()、strtoul() 共6个可以将字符串转换为数字的函数,大家可以对比学习;使用 atof() 与使用 strtod(str, NULL) 结果相同。另外在 C99 / C++11 规范中又新增了5个函数,分别是 atoll()、strtof()、strtold()、strtoll()、strtoull(),在此不做介绍,请大家自行学习。

范例:

#include <stdio.h>
#include <stdlib.h>
int main(){
 char *a = "-100.23",
   *b = "200e-2",
   *c = "341",
   *d = "100.34cyuyan",
   *e = "cyuyan";
 printf("a = %.2f\n", atof(a));
 printf("b = %.2f\n", atof(b));
 printf("c = %.2f\n", atof(c));
 printf("d = %.2f\n", atof(d));
 printf("e = %.2f\n", atof(e));
 system("pause");
 return 0;
}

执行结果:

a = -100.23
b = 2.00
c = 341.00
d = 100.34
e = 0.00
 类似资料:
  • 我有一根绳子, 我想把它转换成一个字节数组。 有人能在这方面引导我吗?我尝试了以下代码,但我得到了ASCII中的数据。我不想那样。

  • 本文向大家介绍C语言实现将字符串转换为数字的方法,包括了C语言实现将字符串转换为数字的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C语言实现将字符串转换为数字的方法。分享给大家供大家参考。具体实现方法如下: C语言提供了几个标准库函数,可以将字符串转换为任意类型(整型、长整型、浮点型等)的数字。以下是用atoi()函数将字符串转换为整数的一个例子:   atoi()函数只有一个参数

  • C 语言中的字符串虽然不是一种独立的数据类型,但是这并不影响其重要地位,所以在 C 语言中会有一些专门针对字符串的函数。 1. 字符串函数 字符串函数是专门用来进行字符串操作的。C 语言提供了一个标准的函数库 string.h 。在这个函数库中大致存在了 22 个字符串的函数。我们这里所介绍的字符串函数是来自于这个标准函数库中比较常用的的一部分函数。除了这个函数库,还会有第三方的函数库提供的字符串

  • 我已经扫描ABCDEFGHIJK与fscanf成一个char数组[26]。然后我得到了ABCDEFGHIJK使用for进入另一个数组[11]。现在我需要一个ABCDEFGHIJK. mp4数组[15],以便将该文件名输入重命名函数。 除了printf、scanf之外,我对C编程知之甚少。 上面的代码似乎有效,但我想知道是否有更简单的方法(特别是对于更大的阵列)? 澄清:我有一个txt文件,格式是包

  • 主要内容:字符串连接函数 strcat(),字符串复制函数 strcpy(),字符串比较函数 strcmp()C语言提供了丰富的字符串处理函数,可以对字符串进行输入、输出、合并、修改、比较、转换、复制、搜索等操作,使用这些现成的函数可以大大减轻我们的编程负担。 用于输入输出的字符串函数,例如 、 、 、 等,使用时要包含头文件 ,而使用其它字符串函数要包含头文件 。 是一个专门用来处理字符串的头文件,它包含了很多字符串处理函数,由于篇幅限制,本节只能讲解几个常用的,有兴趣的读者请 猛击这里查阅所

  • 我展示了一个包含JSON的数组,并直接用超文本标记语言展示了这个数组,在这里你可以找到。它给NaN作为输出。 这是我的超文本标记语言: