C++学习笔记:int sprintf ( char * str, const char * format, ... );

string to number

在C++编程当中,我们经常会遇到需要将数字与字符串相互转换的情况。

C++的标准库函数里面只提供了大量的从string to number的方法

String conversion 定义点这里
atof Convert string to double
atoi Convert string to integer
atol Convert string to long integer
atoll Convert string to long long integer
strtod Convert string to double
strtof Convert string to float
strtol Convert string to long integer
strtold Convert string to long double
strtoll Convert string to long long integer
strtoul Convert string to unsigned long integer
strtoull Convert string to unsigned long long integer

他们的用法也非常简单,很容易掌握。

number to string

但是如果想要将number转换成string,就麻烦了,网上大量的方法都是使用itoa()函数,但问题是,itoa()并不在c++的标准库当中,虽然大多数的compiler都支持,但是偶尔也会有compiler不认的情况。。比如我就遇到了。。

那么c++标准库函数当中有没有方法能实现number到string的转换呢?

答案就是这个函数:

int sprintf ( char * str, const char * format, … );

他能够将自定义好格式的数据写入一个string,如何自定义格式呢?

我想只要是会用printf()函数的同学都应该知道。

举个例子:当我们想要输出一个数字时

#include <stdio.h>

int main()
{
   printf ("%d\n", 65);
   return 0;
}

上面的代码中,第一个参数就是自定义格式,而他事实上也是将整数65转化成了string并输出到屏幕上,可惜的是,该string并没有保存下来,我们也无法对其进行进一步的操作。

这个时候,我们就需要用到 sprintf() 函数了,他能够将printf()函数得到的 string 保存下来。通过这种方法,我们事实上就完成了 number to string 的操作。

#include <stdio.h>

int main ()
{
  char buffer [10];
  sprintf (buffer, "%d\n", 65);
  printf ("%s\n",buffer);
  return 0;
}

事实上,他能做到的事情远不止这么多。

如果你有兴趣,可以好好了解下,format参数的格式。

发布了45 篇原创文章 · 获赞 46 · 访问量 18万+

猜你喜欢

转载自blog.csdn.net/founderznd/article/details/51587587