RSS   



  可打印版本 | 推薦給朋友 | 訂閱主題 | 收藏主題 | 純文字版  


 


 
主題: [閒聊]原來自己真的不懂...C/C++   字型大小:||| 
deep_dream
銀驢友〔初級〕
等級: 12等級: 12等級: 12
深夢

今日心情

 . 積分: 535
 . 文章: 586
 . 收花: 4848 支
 . 送花: 2046 支
 . 比例: 0.42
 . 在線: 947 小時
 . 瀏覽: 13372 頁
 . 註冊: 7244
 . 失蹤: 455
 . 遙遠的ES呀~~~
#1 : 2009-10-27 11:38 PM     只看本作者 引言回覆

等到真的上班了...
開始寫程式了...
才發現...
什麼?指標到底是搞什麼東西呀~~~
東指西指,亂指一堆我看不懂的東西...
指向字串的指標,其實就跟陣列一樣...
而陣列其實就是指標...
老師怎麼都沒說...很多書也沒說,雖然後來有的有說啦...
只是怎麼書上講的用法永遠都那麼簡單...事實上用根本不是這麼一回事...
怎麼可能永遠都是int * or char *

結構可以靠指標來傳...
甚至連函式都用指標來傳...

真是給它好用過頭的指標,我無言了...
覺得自己真的嫩到不行...
一切的重點都是在記憶體呀...

char *str = "C Programing is the best pl";
string s(str);

難到沒有更好的方法讓我使用string的函式卻不必複製記憶體呀~~~
想要使用 string::compare or string::find 等函式,偏偏原資料就是char *
天那~~~



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  新增/修改 爬文標記
oislone
鐵驢友〔中級〕
等級: 5等級: 5


 . 積分: 54
 . 文章: 44
 . 收花: 247 支
 . 送花: 33 支
 . 比例: 0.13
 . 在線: 1713 小時
 . 瀏覽: 26729 頁
 . 註冊: 6926
 . 失蹤: 658
#2 : 2009-10-28 03:11 AM     只看本作者 引言回覆

char * 是 指標~
string 是類別吧~~

不一樣的東西~

char * 應該可以用 strcmp() 或者 memcmp() 來代替
還有 strchr 及 memchr 來代替~



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  新增/修改 爬文標記
RJ
金驢友〔高級〕
等級: 18等級: 18等級: 18等級: 18等級: 18


 . 積分: 3253
 . 精華: 2
 . 文章: 3752
 . 收花: 29708 支
 . 送花: 3317 支
 . 比例: 0.11
 . 在線: 3779 小時
 . 瀏覽: 58629 頁
 . 註冊: 6610
 . 失蹤: 607
 . 辛蒂摩兒、動漫花園分流組、光..
#3 : 2009-10-28 03:56 AM     只看本作者 引言回覆


引用:
deep_dream寫到:
難到沒有更好的方法讓我使用string的函式卻不必複製記憶體呀~~~
想要使用 string::compare or string::find 等函式,偏偏原資料就是char *
天那~~~

你用string的function不如copy char*的內容到string再做處理吧...或是利用強制轉換之類的處理過後再丟到目標去
string:c_str()很好用...有機會你自己去MSDN研究
範例...大概像這樣吧

char* ch1 = "aabbab";
ch1 = static_cast<string>(ch1).substr(static_cast<string>(ch1).find("aa"),3).c_str();

如果你需要的只是不需要另外宣告一個string變數就能使用string的function的話,那像這樣強制轉換後處理應該符合你需求
說穿了"string"這個類別也只是基於"char *"之外再增加一些字串處理function而已,可以直接強制轉換

說實在的,老師都不會交這些東西,因為老師們認為那是你應該要會的
正所謂"師父帶進門,修行看個人"
這些雖然課堂不教,但是老師出的作業多少都是磨練這些技能
不過你一開始說的指標陣列應該基本上都是會教的...只是說看老師是大略帶過還是仔細講解而已

[RJ 在  2009-10-28 04:06 AM 作了最後編輯]



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  新增/修改 爬文標記
deep_dream
銀驢友〔初級〕
等級: 12等級: 12等級: 12
深夢

今日心情

 . 積分: 535
 . 文章: 586
 . 收花: 4848 支
 . 送花: 2046 支
 . 比例: 0.42
 . 在線: 947 小時
 . 瀏覽: 13372 頁
 . 註冊: 7244
 . 失蹤: 455
 . 遙遠的ES呀~~~
#4 : 2009-10-28 09:55 AM     只看本作者 引言回覆

我的確是有用到c_str(),但是那是讓char去讀string的字串。
因為我想要在一長串的字串中找某特定「字串」,而非並是「字元」
所以我才會需要把char x[] or char *x 轉成string類別
strchr or strrchr好像都是找單一字元,所以讓我很困擾~

而且因為資料量進來的時候非常之大,大概3分鐘就2GB~~~
所以我必須僅可能的不要使用copy的方式來處理資料
所以很痛苦~~~
我本來也沒用String,所以常常會用到memcmp、strtok、stcpn但就是覺得不好用呀~~~
我就是想在一長串的資料中找特定字串呀~~~QQ



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  新增/修改 爬文標記
oislone
鐵驢友〔中級〕
等級: 5等級: 5


 . 積分: 54
 . 文章: 44
 . 收花: 247 支
 . 送花: 33 支
 . 比例: 0.13
 . 在線: 1713 小時
 . 瀏覽: 26729 頁
 . 註冊: 6926
 . 失蹤: 658
#5 : 2009-10-28 07:38 PM     只看本作者 引言回覆

那就用 strstr() 就可以了吧~


[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  新增/修改 爬文標記
Ailio
版主
等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30
鸚鵡螺號 艦長

十週年紀念徽章(五級)  

今日心情

 . 積分: 2664
 . 文章: 6462
 . 收花: 22900 支
 . 送花: 4903 支
 . 比例: 0.21
 . 在線: 2826 小時
 . 瀏覽: 85748 頁
 . 註冊: 7396
 . 失蹤: 62
 . 莫名奇妙的商人星球
#6 : 2009-10-29 01:09 PM     只看本作者 引言回覆

其實很多東西都這樣吧

真正上去用 才發現 學校學的 跟 實際用的 搭不上邊

不過程式這種東西 只要腦袋轉的過 邏輯不要差

剩的就是磨練而已 熟能生巧

C/C++ 也非我的領域 就不獻醜了



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  新增/修改 爬文標記
海狼
鍛鐵驢友
等級: 7等級: 7等級: 7
一切都是命

今日心情

 . 積分: 97
 . 文章: 522
 . 收花: 653 支
 . 送花: 119 支
 . 比例: 0.18
 . 在線: 652 小時
 . 瀏覽: 8983 頁
 . 註冊: 8150
 . 失蹤: 2
#7 : 2009-12-17 09:38 PM     只看本作者 引言回覆

目前我正在用linux的系統程式
這也讓我有種...學的很少的感覺
code裡面會用到C++ & linux
外加上FLTK這種UI
底層用C 有時要看
除了這個
還有CHIP原本提供的函數...
關鍵字多到...不知道到要去哪裡查



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  新增/修改 爬文標記

   



 



所在時區為 GMT+8, 現在時間是 2024-9-29 08:35 PM
清除 Cookies - 連絡我們 - TWed2k © 2001-2046 - 純文字版 - 說明
Discuz! 0.1 | Processed in 0.044533 second(s), 8 queries , Qzip disabled