C/C++中字符串与数字相互转换

数字转字符串:

  用C++的streanstream:

  #include <sstream>

  #Include <string>

  string num2str(double i)

  {

  stringstream ss;

  ss << i;

  return ss.str();

  }

  字符串转数字:

  int str2num(string s)

  {

  int num;

  stringstream ss(s);

  ss>>num;

  return num;

  }

  上面方法很简便, 缺点是处理大量数据转换速度较慢..

  C library中的sprintf, sscanf 相对更快

  可以用 sprintf 函数将数字输出到一个字符缓冲区中. 从而进行了转换.

  例如:

  已知从0点开始的秒数(seconds) ,计算出字符串"H:M:S",  其中H是小时, M=分钟,S=秒

  int H, M, S;

  string time_str;

  H=seconds/3600;

  M=(seconds%3600)/60;

  S=(seconds%3600)%60;

  char ctime[10];

  sprintf(ctime, "%d:%d:%d", H, M, S);             // 将整数转换成字符串

  time_str=ctime;                                                 // 结果

  与sprintf对应的是 sscanf 函数, 可以将字符串转换成数字.

  char    str[] = "15.455";

  int     i;

  float     fp;

  sscanf( str, "%d", &i );         // 将字符串转换成整数   i = 15

  sscanf( str, "%f", &fp );      // 将字符串转换成浮点数 fp = 15.455000

  //打印

  printf( "Integer: = %d ",  i+1 );

  printf( "Real: = %f ",  fp+1 );

  return 0;

  输出如下:

  Integer: = 16

  Real: = 16.455000

  补充(by xuzhezhaozhao):

  C标准库了提供了 atoi, atof, atol, atoll(C++11标准) 函数将字符串转换成int,double, long, long  long 型。

  char    str[] = "15.455";

  double     db;

  int     i;

  db = atof(str);   // db = 15.455

  i = atoi(str);    // i = 15

  若字符串为string类型,则要用c_str()方法获取其字符串指针,如下:

  string    str = "15.455";

  double     db;

  int     i;

  db = atof(str.c_str());   // db = 15.455

  i = atoi(str.c_str());    // i = 15

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/510281.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IplImage* cvmat* mat 释放

IplImage* c_left; cvReleaseImage(&c_left); cvmat* img1r; cvReleaseMat(&img1r); mat img2; img2.release();

C语言fread函数了解

fread()函数---- Reads data from a stream. #include<stdio.h> size_t fread( void *buffer, size_t size, size_t count,FILE *stream ); 从一个文件流中读数据,读取count个元素,每个元素size字节.如果调用成功返回count.如果调用成功则实际读取size*count字节 buffer…

Chipscope信号无法找到的解决方案

&#xfeff;为了调试逻辑,现在很少再将FPGA中的信号引出,通过示波器或者逻辑分析仪来观察,更多的是在工程中生成stp或者cdc文件,通过signalTAP或者chipscope这两个工具来调试. 但我们发现,有时候在chipscope中很难找到你预期的信号,这往往是被综合器优化掉了,或者更改了信号名…

关于python 和C++使用cv画矩形并填充颜色同时填充文字

python: font cv2.FONT_HERSHEY_SIMPLEX # 使用默认字体 cv2.rectangle(im, (10, 10), (110, 110), (0, 0, 255), thickness2) # cv2.floodFill() cv2.rectangle(im, (113), int(110)), (int(300), int(135), …

C语言之strstr函数

FROM MSDN && 百科】 原型&#xff1a;char *strstr(const char *str1, const char *str2); #include<string.h> 找出str2字符串在str1字符串中第一次出现的位置&#xff08;不包括str2的串结束符&#xff09;。返回该位置的指针&#xff0c;如找不到&#xff0c…

C语言fwrite函数了解

fwrite()函数----write data to a stream 原型&#xff1a; size_t fwrite(const void* buffer, size_t size, size_t count, FILE* stream); 注意&#xff1a;这个函数以二进制形式对文件进行操作&#xff0c;不局限于文本文件 demo: [cpp] view plaincopy #include <std…

Python-OpenCV 处理图像(一):基本操作 cv2

0x00. 图片读、写和显示操作 安装好 OpenCV 之后&#xff0c;首先尝试加载一张最简单的图片并显示出来&#xff0c;代码示例&#xff1a; 第一种方式使用cv2.cv的LoadImage、ShowImage和SaveImage函数 import cv2.cv as cv# 读图片 imagecv.LoadImage(img/image.png, cv.CV_LOA…

C语言fscanf函数了解

fscanf函数从一个流中执行格式化输入,fscanf遇到空格和换行时结束&#xff0c;注意空格时也结束。这与fgets有区别&#xff0c;fgets遇到空格不结束。 原型&#xff1a;int fscanf(FILE *stream, char *format,[argument...]); 返回值&#xff1a;返回实际被转换并赋值的输入项…

linux下gcc编译使用opencv的源文件时报错的处理:undefined reference to symbol '_ZNSsD1Ev@@GLIBCXX_3.4'

这阵子用OpenCV的sift做了一下匹配&#xff0c;在使用gcc编译时遇到这样的一个报错 /usr/bin/ld: /tmp/cceCEx1F.o: undefined reference to symbol _ZNSsD1EvGLIBCXX_3.4 //usr/lib/x86_64-linux-gnu/libstdc.so.6: error adding symbols: DSO missing from command linecoll…

C语言fgets函数了解

原型是&#xff1a;char *fgets(char *s, int n, FILE *stream); 从文件指针stream中读取n-1个字符&#xff0c;存到以s为起始地址的空间里&#xff0c;直到读完一行&#xff0c;如果成功则返回s的指针&#xff0c;否则返回NULL。 例如&#xff1a;一个文件是hello,world&…

PCL PCD文件读写

/* 时隔一年&#xff0c;又回来做双目视觉方向&#xff0c;需要重新启航&#xff0c;加油&#xff01;&#xff01;&#xff01; */ #include <iostream> #include <pcl/io/pcd_io.h> #include <pcl/point_types.h> int main() { //----------------…

判断两颗棵二叉树是否相等

int CompTree(TreeNode *tree1, TreeNode *tree2) { bool isTree1Null (tree1 NULL); bool isTree2Null (tree2 NULL); //其中一个为NULL,而另一个不为NULL,肯定不相等 if (isTree1Null ! isTree2Null) return 1; //两个都为NULL,一定相等 if (isTree1Null && isTr…

sdut 数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历

第一次写BFS的题&#xff0c;从开始一脸懵逼到慢慢分析&#xff0c;期间没有看书没查博客&#xff0c;自己安静的做了四十分钟终于做出来了&#xff0c;满满的成就感&#xff0c;我很水&#xff0c;但是我很努力&#xff0c;Mr杰要努力&#xff01; #include<stdio.h> #i…

最简逆波兰模板

#include<iostream> #include<math.h> using namespace std; double exp() { char a[10]; scanf("%s",a);//注意scanf取入字符串遇到‘\0’停止 switch(a[0]){ case :return exp()exp(); case -:return exp()-exp(); case *:return exp()…

windows 静态IP设置

1.打开cmd&#xff0c;输入ipconfig 记录 IP address 子网掩码 网关 打开 wlan 属性 选中一个网络右键 “属性” 设置 ipv4&#xff0c;选择“使用下面的IP地址” 对应填写 ip地址 子网掩码 网关 tips&#xff1a;DNS建议和网关一样

算术表达式的前缀式、中缀式、后缀式相互转换

中缀表达式&#xff08;中缀记法&#xff09;中缀表达式是一种通用的算术或逻辑公式表示方法&#xff0c;操作符以中缀形式处于操作数的中间。中缀表达式是人们常用的算术表示方法。 虽然人的大脑很容易理解与分析中缀表达式&#xff0c;但对计算机来说中缀表达式却是很复杂的&…

sdut 二叉排序树

二叉排序树 Time Limit: 1000MS Memory Limit: 65536KBSubmit Statistic DiscussProblem Description 二叉排序树的定义是&#xff1a;或者是一棵空树&#xff0c;或者是具有下列性质的二叉树&#xff1a; 若它的左子树不空&#xff0c;则左子树上所有结点的值均小于它的根结点…

“CV_RGB2BGR”: 未声明的标识符

#include "opencv2/imgproc/types_c.h" 添加以上头文件

sdut 图的深度遍历

图的深度遍历Time Limit: 1000MS Memory Limit: 65536KBSubmit Statistic DiscussProblem Description请定一个无向图&#xff0c;顶点编号从0到n-1&#xff0c;用深度优先搜索(DFS)&#xff0c;遍历并输出。遍历时&#xff0c;先遍历节点编号小的。Input输入第一行为整数n&…

windows pytorch环境安装配置

1.下载anaconda windows版本下载地址