c中怎麼把string型別轉換為float型或int型

2021-09-02 07:16:46 字數 3842 閱讀 4993

1樓:匿名使用者

c++中string是乙個定義的類,要將其轉換為float 或者 int 應先轉為 char* 。

如 string --> int

string str;

int i=atoi(str.c_str());

string -->float

string str;

float f=atof(str.c_str());

其中 c_str() 表示 返回乙個c風格的字串。

2樓:匿名使用者

你可以用char嗎??為何非要用string呢!!如果用char就簡單多了,可以用c語言的庫函式,c++不都相容嗎??

char a[100];

double m;

int n;

n=atoi(a); //轉化為整型

m=atof(a); //轉化為double型

3樓:

#include "stdafx.h"

#include

#include

#include

using namespace std;

int main( )

4樓:匿名使用者

int atoi(const char *nptr);

c語言中如何將short,int,long,float這些型別的數值轉換為字串?

5樓:匿名使用者

可以使用sprintf函式轉換。

1、對於整型,各個平台有一些函式可以專門轉換,比如itoa等。

不過更通用的做法是使用sprintf函式。

2、宣告:

int sprintf(char *dst, const char *format_string, ...);

標頭檔案為stdio.h。

3、功能:

sprintf是乙個不定引數函式,根據format_string中提供的格式符,將後續引數轉為字串儲存在第乙個引數dst中。

4、使用示例:

short a=1;

int b=2;

long c=3;

float d=4;

char buf[100];

sprintf(buf, "%hd %d %ld %f",a,b,c,d);//按照格式,將四個變數儲存在字串中。

執行後,buf中字串為"1 2 3 4.000000"。

格式字串使用方法與輸出函式printf相同。

6樓:匿名使用者

這些都是  整數  型的,所以把每一位拿出來放到char陣列裡面就好#include

#define len 20

int main()

for(i=0; i

7樓:匿名使用者

int i = 105:

char str[100] = ;

sprintf(str, "%d", i);

其他型別變數的方法類似

8樓:匿名使用者

用sprintf函式即可。例如

char s[20];

short a=35;

sprintf(s,"%d",a);就把s的值賦為「35」了。

c++中,如何將long型轉換為float和double型?

9樓:匿名使用者

long a,b;

int c;

float d;

d=(double)1000*a/b;

這樣不用你的c了,或者你把c定義成double型別吧

10樓:du瓶邪

法1:itoa, ltoa(a表示array陣列的意思)標頭檔案:stdlib.h

示例:int a = 3;

long b = 23;

char buf1[30] = "";

itoa(a, buf1, 10);//10表示十進位制,buf1儲存的內容為"3"

char buf2[30] = "";

ltoa(b, buf2, 10);//10表示十進位制,buf2儲存的內容為"32"

方法2:sprintf

標頭檔案:stdio.h

示例:int a = 3;

float b = 4.2f;

char buf[30] = "";

sprintf(buf, "%d,%f", a, b);//buf儲存的內容為"3,4.2",可對比printf

方法3:ostringstream

標頭檔案:#include

using namespace std;

示例:int a = 3;

float b = 4.2f;

ostringstream s1;

s1

示例:int a;

float b;

istringstream s1("23 23.4");

s1>>a>>b;//對比cin

11樓:匿名使用者

實際處理中一般直接寫成(int)(1000.0*a/b)就可以

計算1000.0*a的時候因為1000.0是double所以a也自動轉換成double,1000.0*a的結果於是也是個double

12樓:匿名使用者

c=int((double)1000*(double)a/(double)b); 這種方法叫現式強制轉化。

不推薦使用。

如果要準確可以宣告的時候就把這3個變數宣告成float型的吖。

13樓:匿名使用者

long a,b;

int c;

c=1000*(float)(a/b);

這樣a/b得出的結果就會按浮點數給出,而不會捨去尾數,與設d效果相同。

ps:c++中的強制型別轉換函式是 (t)a ,函式返回乙個轉換後的t型變數,其中t表示要轉換的型別,a是變數。如要把long型的temp轉換成double型,並賦給number,只需 number=(double)temp; 即可。

14樓:匿名使用者

因為a b是long 所以a/b這個表示式的結果一定是long型的,所以問題不在c上。要準確,必須a b 是float 或者 double型的

15樓:裝著很懂

c=int((double)1000*(double)a/(double)b);

c++中,如何講char陣列轉換成float型資料。

16樓:匿名使用者

可使用庫函式strtod(const char* ptr, char** endptr)或atof(const char *ptr)將char陣列轉換成float型資料。

當strtod的第二個引數endptr不為null時,且ptr中含非法字元,則會將非法字元通過endptr返回。

#include

#include

int main()

17樓:徐光豬

#include

using namespace std;

int main()

double atof( const char *string );

這個是函式原型

18樓:匿名使用者

strtod

double strtod(char *str,char *endstr)

C中怎麼將String型別(時間的text)轉換成Data型別

string型別可以通過convert和parse方法轉換成datetime型別。比如string datestring 2011 03 06 datetime date convert.todatetime datestring 或 datetime date datetime.parse dat...

c資料型別轉換,c 中型別如何強制轉換

textbox.text.tostring 你這句話得意思就是把所有輸入到文字框的資料都先轉換成字元型別text.tostring text.toint32 這就是轉換成數值型別這都是封裝好的方法,指需要知道怎麼轉換就ok了,其中的具體轉換機制,轉換過程,沒必要去理解 給你個思路。數字轉字串 和其他...

c裡string與char陣列怎麼轉換

1.string 轉換成版 char 權string ss abcdefg char cc ss.tochararray 2.char 轉換成string string s new string cc string str abcd char carr str.tochararray str new...