编程论坛
注册
登录
编程论坛
→
C++教室
C++中string 定义的字符串是啥意思?和CString定义的不一样么?
毕业旅行
发布于 2010-08-19 09:51, 4005 次点击
我写一个C++的文件,字符串定义成string
但是发现atof不能用的,string 是类么?
有点糊涂了,导致做了一般的东西搁那里都没取碰。。。
帮解释下string和MFC里的CString...
8 回复
#2
lintaoyn
2010-08-19 10:01
不是很懂得楼主说什么,string是一个类,在头文件string中有声明。C里有一个string.h的头文件对应C++里的cstring这个头文件。
string s("sfsfs");
s.c_str();//转化成C风格的字符串。atof(s.c_str());
你试下的
#3
zhoufeng1988
2010-08-19 10:06
楼上正姐。
#4
毕业旅行
2010-08-19 10:36
atof(s.c_str());
那个解决了了问题哈,不过我想知道为啥在MFC的程序段里我写atof(str);直接就可以了,当然这个str的定义是CString
然后定义是string 就要写成.c_str()哈
顺便再问一个问题。。。
将double型转化为string咋转化,Format不能用哈这里。。。
然后我查了下fcvt好想可以实现这个功能,问题是。。我想知道这个函数的参数是啥意思。。。为啥返回字符串还要这些参数啊
函数名: fcvt
功 能: 把一个浮点数转换为字符串
用 法: char *fcvt(double value, int ndigit, int *decpt, int *sign);
ndigit好像是保留位数?
#5
lintaoyn
2010-08-19 11:31
c里面不是有一个sprint()?第一个参数好像缓冲区,用点笨的低效的方法,也应该能把浮点数转换为字符串
#6
毕业旅行
2010-08-19 11:45
回复 5楼 lintaoyn
我尝试了下,加了#include<stdio.h>后
咋还是报错说sprint没有定义哈。。。
#7
lintaoyn
2010-08-19 11:54
sprintf();C语言标准库里的,自己查下的。
#8
毕业旅行
2010-08-19 12:23
回复 7楼 lintaoyn
有了,可以用,不过比较复杂,第一个地址参数我是写成&str[0],str是string,直接写str报错的。
程序有点问题,偶尔出错,我下午再查查看。
#9
pangding
2010-08-19 23:40
strtod 可以把一个 char * 转成 double。它要两个参数,第二个参数是个 char * 的引用,是事后用来检查转换是否预期完成的。不需要用的时候传个 NULL 过去就行了。
1