我有一個包含名爲char * text的成員的結構體。在從結構中創建一個對象後,如何將文本設置爲字符串?如何設置字符串類型的結構成員
1
A
回答
5
如果你的結構是一樣
struct phenom_struct {
char * text;
};
,你給它分配
struct phenom_struct * ps = malloc (sizeof (phenom_struct));
然後檢查ps
值後不爲空(零),這意味着 「失敗」,您可以將文本設置爲像這樣的字符串:
ps->text = "This is a string";
0
typedef struct myStruct
{
char *text;
}*MyStruct;
int main()
{
int len = 50;
MyStruct s = (MyStruct)malloc(sizeof MyStruct);
s->text = (char*)malloc(len * sizeof char);
strcpy(s->text, "a string whose length is less than len");
}
0
示例:
struct Foo {
char* text;
};
Foo f;
f.text = "something";
// or
f.text = strdup("something"); // create a copy
// use the f.text ...
free(f.text); // free the copy
+0
語法錯誤無處不在... 其「struct Foo f」和「f.text」 – 2009-11-26 08:20:11
+0
@ammoQ,ooooops。謝謝。 – 2009-11-26 08:24:50
1
您的結構成員不是一個真正的字符串,而是一個指針。您可以通過
o.text = "Hello World";
設置指向另一個字符串,但你一定要小心,至少長的字符串必須生活爲對象。如其他答案中所示使用malloc是一種可行的方法。在許多情況下,在結構中使用char數組更爲理想。即代替
struct foobar {
...
char *text;
}
使用
struct foobar {
...
char text[MAXLEN];
}
這顯然要求您知道該字符串的最大長度。
相關問題
- 1. c - 字符串處理結構成員
- 2. 結構類成員
- 3. 如何設置一個結構的枚舉成員的值
- 4. ASP.Net設置類型從字符串
- 5. jaxb設置字符串類型
- 6. 如何處理設置爲指針的結構的結構成員?
- 7. 如何訪問和存儲矢量類型的結構成員?
- 8. 如何將所有結構成員設置爲相同的值?
- 9. 如何引用c中的數組結構成員的字符?
- 10. 將DisplayMemberPath設置爲字典的結構值成員
- 11. C++字符串成員構造
- 12. 如何用C中的結構成員中的空格掃描字符串?
- 13. 鑄字字符的結構類型
- 14. 類型(鍵:字符串,值:任何)沒有下標成員
- 15. bsearch未能在結構數組中找到字符串成員
- 16. 字節數組結構 - 如何訪問結構成員
- 17. 類型的字符串沒有成員迅速
- 18. 類型'字符串'的值沒有成員'removeVowels'
- 19. 基於字符串訪問類成員
- 20. 類型「字符集」沒有成員「utf8」
- 21. 如何獲取未指定成員的類型名稱(作爲字符串)?
- 22. 如何在Doxygen中爲PHP代碼設置成員類型?
- 23. 如何爲結構/字符串類實現比較運算符?
- 24. 類型(字符串,anyobject)沒有下標成員
- 25. 值類型「字符串」沒有成員「stringByTrimmingCharactersInSet」
- 26. 值類型「字符串」沒有成員「stringByAppendingPathComponent」
- 27. AutoMapper:將子成員從複雜類型映射到字符串[]
- 28. llvm的字符串表示::類型結構
- 29. 如何在Windows Phone 7中的對象上設置結構類型的字段
- 30. 設置類的C#結構
C中的對象,C中的字符串?我認爲你需要澄清你的問題多一點:) – HyLian 2009-11-26 08:15:35
@HyLian:C中的對象?是的,在C中,存儲中的所有數據都稱爲「對象」。 C中的字符串?當然,C中有字符串。 – AnT 2009-11-26 10:28:49