1.基本类型转为字符数组或字符串

❶整形转为字符数组: char *itoa(int value, char *string, int radix);

          value  将要被转换的值。string  转换的结果存储位置 radix   Base of value; must be in the range 2-36(转换基数,例如:radix=10表示10进制,radix=8表示8进制。) 返回值:与string参数相同,便于函数的嵌套调用 

倘若要获得字符串,使用string(char*)的构造函数即可以获得字符串。

❷浮点型转为字符数组或者字符串

比较简单的方法。使用字符串流。

stringstream ss;
string c;
char d[10];
ss<<14.20;
ss>>c;//转为字符串;
strcpy(d,ss.str().c_str());//转为字符数组
cout<<c<<endl;
cout<<d<<endl;

注意: strcpy的第二个参数必须为常量指针const char*。故必须使用ss.str().c-str()获得,返回的是指向值为常量的指针const char*类型。

2.字符数组或字符串转为基本类型

❶字符数组转为基本类型。atoi, atof,atol(C++11标准库, "stdlib.h") 函数将字符数组转换成int,double, long变量,如

  char  str[] = "15.455";double db;int i;db = atof(str);   // db = 15.455i = atoi(str);    // i = 15

  ❷字符串(string类型)转为基本类型。要用c_str()方法获取其字符数组指针char*,然后调用上述的方法。如下:

  string  str = "15.455";double db;int i;db = atof(str.c_str());// db = 15.455i = atoi(str.c_str());// i = 15

3.字符串流sstream

❶实际上,stringstream可以读入基本类型和字符串字符数组。然后使用>>输出到int,double,string和字符数组中等类型。即,可以完成任意两两之间的转换。例如:

stringstream ss;
string c("13.40");
double dValue=0.0;
int intValue=0;
char d[10]={'1','3','.','4','0'};
ss<<d;//或者ss<<c;
ss>>intValue;
ss>>dValue;

不管是输入字符数组d还是字符串c。得到的结果都是intValue=13和dValue=0.40。当然,倘若交换读入顺序,如

ss>>dValue;
ss>>intValue;

则dValue=13.40而intValue为随机数。

❷但是,有一点要注意。倘若要循环读入字符,且清除原始的内容,应该使用ss.str("")。如下,寻找小于100的数中,含有5和6的数的个数。

#include"iostream"
#include "sstream"
#include "stdlib.h"
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{char s[5];memset(s,0,sizeof(s));int sum;for(int i=0,sum=0;i<100;i++)if(strchr(itoa(i,s,10),'5')&&strchr(s,'6'))cout<<sum++<<": "<<i<<endl;stringstream ss;for(int i=0,sum=0;i<100;i++){ss.str(""); ss<<i;//清除strcpy(s,ss.str().c_str());//获得数组if(strchr(s,'5')&&strchr(s,'6'))cout<<sum++<<"  "<<i<<endl;}return 0;
}

输出相同

转载于:https://www.cnblogs.com/engineerLF/p/5393059.html

字符串字符数组和基本类型的相互转换相关推荐

  1. JAVA关于字符串字符数组处理的小题目

    JAVA关于字符串&&字符数组的小题目 第二题:分析以下需求,并用代码实现 1.键盘录入一个大字符串,再录入一个小字符串 2.统计小字符串在大字符串中出现的次数 3.代码运行打印格式: ...

  2. C语言字符型数组ppt,C语言第13讲指针与字符串(字符数组).ppt

    C语言第13讲指针与字符串(字符数组).ppt 6.2.3 指针与字符串(字符数组) C语言用字符数组存放字符串. 字符数组元素个数确定,一般用下标控制循环. 字符串有效字符个数由0确定,用结束符0控 ...

  3. C++ 复制字符串/字符数组

     题目 [项目1-小心地放开玩字符串/字符数组] (2)读程序,请分析其实现的功能 [cpp] view plaincopyprint? #include<iostream> usin ...

  4. java 字符串转list_浅谈java 字符串,字符数组,list间的转化

    1.关于java.lang.string.split xxx.split()方法可以将一个字符串分割为子字符串,然后将结果作为字符串数组返回. 2.字符串转字符数组 String str =" ...

  5. 小心地放开玩字符串/字符数组(二)某类字符的个数

    /* * Copyright (c) 2012, 烟台大学计算机学院 * All rights reserved. * 文件名称:test.cpp * 作 者:徐凯旋 * 完成日期:2012 年 12 ...

  6. MFC中CString类字符串与长整型、浮点型、字符数组char数据之间的相互转换

    一.长整型数据与CString类字符串相互转换 1.将长整型数据转换为CString字符串类 CString str; long ld; str.Format(_T("%ld"), ...

  7. 【C 语言】字符串操作 ( C 字符串 | 字符数组始化 )

    文章目录 一.C 字符串 二.字符数组始化 一.C 字符串 C 字符串特征 : C 语言中的字符串都是以 '\0'字符 结尾的 字符数组 ; C 字符串本质 : C 中 没有字符串类型 , 都是使用 ...

  8. C 语言里的字符串---字符数组

    //      实际上, c中并没有字符串这种数据类型,  也就是说c是没有像java, .net等其他高级语言中常用的String类型.             首先要强调:       a. c语 ...

  9. 字符 字符串 字符数组 字符串指针 指针数组

    一.字符指针.字符数组 字符指针:字符串指针变量本身是一个变量,用于存放字符串的首地址.而字符串本身是存放在以该首地址为首的一块连续的内存空间中并以'\0'作为串的结束. char *ps=" ...

最新文章

  1. ABP入门系列(10)——扩展AbpSession
  2. C#里面的三种定时计时器:Timer
  3. 看后端程序员调试CORS的姿势
  4. cookie、session和token
  5. 常用的几个JQuery代码片段
  6. linux usb 存储设备,找到哪个驱动器对应于Linux中的哪个USB大容量存储设备
  7. 怎么用CDN给网站加速?大热的CDN,你确定你还不想了解?
  8. python中复数类型的实部和虚部都是浮点数_Python合集之Python数据类型(一)
  9. java graphics2d renderinghints_java - Graphics2D错误 - 堆栈内存溢出
  10. 记录--Spyder打开时出现“An error occurred while starting the kernel“
  11. 专硕计算机学院排名,考研计算机院校排名
  12. git 回滚、取消commit、取消merge等回退操作
  13. 大数据笔记-外存算法
  14. [VRFC 10-529] concurrent assignment to a non-net an is not permitted [C:/Users/chenxy/Desktop/digit
  15. 戴尔硬件服务器参数,戴尔_PowerEdge R540_机架式服务器参数_服务器推荐购买 | Dell 中国大陆...
  16. 12864液晶显示出十进制数据
  17. 【转载】Android应用之——百度地图定位返回4.9E-324的解决方案
  18. 企业网站首页设计常见的6种布局方式
  19. Android实现文字垂直滚动
  20. 【攻破html系列——第三天】文本标签和容器标签

热门文章

  1. WSL系列操作:安装,卸载
  2. LLVM报错解决:/usr/bin/ld: cannot find -lz和/usr/bin/ld: cannot find -lncurses
  3. python太阳花绘图_python中turtle如何画太阳花?
  4. 2020-11-13size_t和int
  5. 将特定像素点在图像上连接起来_(NeurIPS 2019) Gated CRF Loss-一种用于弱监督图像语义分割的新型损失函数...
  6. 3780mysql_MySQL添加外键Foreign Keys出错,报错[HY000][3780]
  7. java 企业付款_java实现微信企业付款到个人功能
  8. mysql数据库管理系统的配置文件是_MySQL学习笔记_1_MySQL数据库管理系统概述
  9. 单片机c语言NTC温度查表程序,STM32查表法读NTC值并显示温度
  10. 字节增强java_java字节增加 - longjunping的个人空间 - OSCHINA - 中文开源技术交流社区...