日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言330转化成字符,c/字符串,字符转数字,数字转字符(转)

發布時間:2024/9/19 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言330转化成字符,c/字符串,字符转数字,数字转字符(转) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一.將CString轉為CTime的幾種方法

CString ?timestr

= ?"2000年04月05日";

int ?a,b,c ?; ?sscanf(timestr.GetBuffer(timestr.GetLength()),"%d年%d月%d日",&a,&b,&c);

CTime ?time(a,b,c,0,0,0);?--------or - ---------------------

CString ?s("2001-8-29

19:06:23"); ?int ?nYear, ?nMonth, ?nDate, ?nHour,

nMin, ?nSec;

sscanf(s, ?"%d-%d-%d

%d:%d:%d", ?&nYear, ?&nMonth,

&nDate, ?&nHour, ?&nMin,

&nSec); ?CTime ?t(nYear,

nMonth, ?nDate,

nHour, ?nMin,

nSec);

---- or ------------------------

CString ?timestr ?=

"2000年04月05日"; ?int ?year,month,day;

BYTE ?tt[5];

//get ?year

memset(tt, ?0,

sizeof(tt)); ?tt[0] ?= ?timestr[0]; ?tt[1] ?= ?timestr[1]; ?tt[2] ?= ?timestr[2]; ?tt[3] ?= ?timestr[3]; ?year= ?atoi((char

*)tt); ?//get ?month

memset(tt, ?0,

sizeof(tt)); ?tt[0] ?= ?timestr[6]; ?tt[1] ?= ?timestr[7]; ?month ?= ?atoi((char ?*)tt); ?//get ?day

memset(tt, ?0,

sizeof(tt)); ?tt[0] ?= ?timestr[10]; ?tt[1] ?= ?timestr[11]; ?CTime ?time(year,month,day,0,0,0);

從上面來看,很明顯使用sscanf()函數的優勢.

二.將CTIme轉換為CString的方法:

CTime?tmSCan =

CTime::GetCurrentTime();

CString szTime = tmScan.Format("'%Y-%m-%d

%H:%M:%S'");

這樣得到的日期時間字符串就是以"2006-11-27

23:30:59"的格式.這是不是很方便呢?

//取得CTime中的日期

CString cstrDate =

tmScan.Format("%Y-%m-%d");

//取得CTime中的時間

CString cstrTime =

tmScan.Format("%H:%M-%S");

sprintf還有個不錯的表妹:strftime,專門用于格式化時間字符串的,用法跟她表哥很像,也是一大堆格式控制符,只是畢竟小姑娘家心細,她還要調用者指定緩沖區的最大長度,可能是為了在出現問題時可以推卸責任吧。這里舉個例子:

更多更好的sprintf()函數說明參考:《spirntf,你知道多少?》

time_t t = time(0);

//產生"YYYY-MM-DD

hh:mm:ss"格式的字符串。

char s[32];

strftime(s, sizeof(s), "%Y-%m-%d %H:%M:%S",

localtime(&t));

sprintf在MFC中也能找到他的知音:CString::Format,strftime在MFC中自然也有她的同道:CTime::Format,這一對由于從面向對象哪里得到了贊助,用以寫出的代碼更覺優雅。

三,字符串轉換為數值類型

將字符串"20.0E6"轉換為數字

1,sscanf("20.0e5","%d",&x);

2,atof("20.0E6");

許多人用atoi(), atof() 和這個“家族”中的其它函數. 它們方便應用,但是有一個重要的缺點:

在轉換失敗和轉換字符串"0"時都返回0, 這樣使得一致性錯誤檢查變得幾乎不可能。 為了完整性我們給出了小段代碼:

代碼:

--------------------------------------------------------------------------------

const char* str_int =

"777";

const char* str_float =

"333.3";

int i = atoi(str_int);

float f =

atof(str_float);

--------------------------------------------------------------------------------

一個更好的辦法:

更有一點復雜, 更遺一致的辦法是利用sscanf()

代碼:

--------------------------------------------------------------------------------

const char* str_int =

"777";

const char* str_float =

"333.3";

int i;

float f;

if(EOF == sscanf(str_int,

"%d", &i)){

//錯誤

}

if(EOF == sscanf(str_float,

"%f", &f)){

//錯誤

}

--------------------------------------------------------------------------------

Since sscanf() takes a const char* parameter, you can directly

use a CString with it:

因為sscanf()用const char* 作為參數, 所以你可以直接用CString作參數:

代碼:

--------------------------------------------------------------------------------

CString str_int("777");

if(EOF == sscanf(str_int,

"%d", &i)){

//error

}

--------------------------------------------------------------------------------

小心格式描述符(如本例中的"%d")。

sscanf()沒有辦法檢查格式描述符與傳遞變量的類型匹配與否。如果不匹配你將得到不可預期的結果。

同樣注意sscanf()可以一次從字符串中提取一個或多個數值。 詳細信息請查閱MSDN。

C++ 方法

如下的例子展示了利用標準C++類的來完成這個任務的模板函數

代碼:

--------------------------------------------------------------------------------

#include

#include

#include

template

bool from_string(T &t,

const std::string &s,

std::ios_base &

(*f)(std::ios_base&))

{

std::istringstream

iss(s);

return

!(iss>>f>>t).fail();

}

int main()

{

int i;

float f;

//

from_string()的第三個參數應為如下中的一個

// one of std::hex, std::dec 或

std::oct

if(from_string(i,

std::string("ff"), std::hex)){

std::cout<

}

else{

std::cout<

failed"<<:endl>

}

if(from_string(f,

std::string("123.456"),

std::dec))

{

std::cout<

}

else{

std::cout<

failed"<<:endl>

}

return 0;

}

四,?int char * float and

CString?Covernt

1。 int

CString

1) int ->CString

int n = 1;

CString str;

str.Format("%d",n);

2) CString->int

CString str = "1";

int n = atoi(str.GetBuffer(0));

2. char* 與CString

1)char*->CString

char sz[128];

CString str;

str.Format("%s",sz);

2) CString -> char*

CString str;

//int nLength = str.GetLength();

char* sz = str.GetBuffer(0);

3.

floatCString

1)float->CString

float f = 0.0;

CString str;

str.Format("%f",f);

2) CString->float

CString str = "0.0";

float f = atof(str.GetBuffer(0));

總結

以上是生活随笔為你收集整理的c语言330转化成字符,c/字符串,字符转数字,数字转字符(转)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 97自拍偷拍视频 | 超碰人人干人人 | av色在线观看 | 亚洲在线视频免费观看 | 欧洲综合视频 | 日本一级吃奶淫片免费 | 亚洲伦理视频 | 成人激情综合网 | 99热在线观看免费 | 中国浓毛少妇毛茸茸 | 久久久这里有精品 | 91传媒在线视频 | 日韩欧美中文在线 | 日韩av网址在线观看 | 国产精品免费视频一区二区三区 | 一级片免费视频 | 国产内射一区二区 | 色呦呦免费观看 | 制服丝袜手机在线 | 古代黄色一级片 | 日本黄色小说 | 亚洲女人视频 | 欧美一区二区在线观看视频 | 亚洲综合日韩精品欧美综合区 | 91国产丝袜在线播放 | 成人免费高清在线播放 | av激情久久 | 久久亚洲天堂网 | 国产久操视频 | 久久国产经典 | 日韩精彩视频在线观看 | 91成人看| 风流老熟女一区二区三区 | 一本色道久久亚洲综合精品蜜桃 | 99热青青草 | 午夜剧场免费在线观看 | 污视频免费看 | 国产视频一区二区在线播放 | 青青操免费 | 久久久久久久蜜桃 | 三级视频在线观看 | 亚洲色图35p| 国产高清小视频 | 麻豆影视大全 | 免费无遮挡无码永久在线观看视频 | 午夜影院久久久 | 在线尤物| 一区二区不卡在线观看 | 免费看欧美大片 | 办公室大战高跟丝袜秘书经理ol | 女生张开腿给男生桶 | 亚洲另类视频 | 男人和女人在床的app | 亚洲激情视频一区 | 体感预报日剧 | 少妇脚交调教玩男人的视频 | 天天天天天天天干 | 免费在线看黄的网站 | 中文成人无字幕乱码精品区 | 无码精品人妻一二三区红粉影视 | 久久精品日韩 | 午夜啪啪网 | 永久视频在线 | 亚洲综合网站 | 少妇特黄a一区二区三区 | 夜色精品 | 国产污污网站 | 亚洲aⅴ网站| 欧美爱爱网| 中文字幕有码在线 | 男女做爰猛烈刺激 | 色综合啪啪 | 色com| 亚洲自拍电影 | 国产片免费| 91免费在线观看网站 | 中文字幕精品视频 | 999黄色片| 国产aⅴ精品 | 国模视频一区二区 | 在线观看福利视频 | 97影视 | 88xx成人永久免费观看 | 中文字幕日韩精品在线观看 | 久久久成人免费视频 | 91精品免费在线观看 | 毛片资源| 中文视频一区二区 | 国产av人人夜夜澡人人爽 | 最新国产中文字幕 | 日批在线视频 | 男生坤坤放进女生坤坤里 | 日韩黄色免费观看 | 欧美熟妇另类久久久久久多毛 | www.com国产| 少妇在线观看 | 99999视频 | 一区在线视频 | 蜜桃久久久久久久 |