2013-02-04 197 views
1

我知道這聽起來很愚蠢等等,但我有點絕望。我是一個C++/Objective-C/Python人,我習慣於由String類或NSString類或Python的甜字符串提供的方便性。但是我只做了很少的任務,而且我們的教授只是太熱衷於使用C語言。我沒有使用C字符串的問題,但我並不是非常興奮地使用它們。C字符串結構

因此,我認爲第一寫字符串數據結構(可能含有一個指針的結構體保持字符)和伴隨的功能。但在深入研究之前,我想知道是否有任何類似的開源內容可用......如果你們/女孩可以請告訴我。這將是一個很大的幫助。謝謝:)

+0

你說的是:Python字符串。 –

+4

如果你的教育工作者希望你用C語言寫作,你最好學會用C語言編寫。他們不太可能會爲了查看你是否已經完成這項工作而不得不渡過一大堆字符串類代碼。這將是一個良好的勞動力培訓,雖然你可以做出改進,但付賬單的人會做出決定:-) – paxdiablo

+0

是的......我仍然會用C語言寫...但只是有點想要一個圍繞醜陋語法的包裝。我知道如何使用C字符串...我沒有學習任何新的東西...只是浪費我的時間:( – shobhu

回答

4

如果你想在C更好的字符串庫,也許你應該看看The Better String Library。它提供了一個明智的界面,與原始C字符串和標準C庫函數相比,它有相當大的改進。

+0

perfecto amigo :) – shobhu

0

你不能寫成員函數到一個struct在C所以你可以做的將在所有可能性只會稍好於char* + strlen等。

如果你只想隱藏*,你可以做

typedef char* MyString; 

編輯:看看Coping with Character Strings in C看起來談論完全相同的問題。

+0

是的,我知道...不要擔心我會從中得到什麼...如果它能幫我看看那種醜陋的語法...那我就是爲了它。 – shobhu

+0

@shobhu如果'*'是你定義的醜陋語法,你可以很容易地做'typedef char * MyString;' –

+0

不用它的非指針......它以我們分配的方式,它的方式我們用strtok來解析...它沒有得到解析後剩餘部分的優雅方式,它的方式是我必須照顧'\ 0'字符,如果發送它在一個流...說在套接字編程,它的方式,當我想要一個字符串列表......等等時,我必須使用** – shobhu

0

我會想到簡單的方法來做到這一點。

typedef struct __my_string { 
    char data[MAX_CHAR]; // or even, char *data; 
} MyString; 
+0

哦哇! 'MAX_CHAR'?當我需要一個比MAX_CHAR長的字符串時會發生什麼? – Johnsyweb

+0

哦,我可以設置MAX_CHAR一些荒謬的數字...我現在不尋找內存管理 – shobhu