我有一個包含名爲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. 如何設置一個結構的枚舉成員的值
- 5. 如何處理設置爲指針的結構的結構成員?
- 6. 錯誤:類型「字符串」的值沒有任何成員「URLByAppendingPathComponent」
- 7. 如何訪問和存儲矢量類型的結構成員?
- 8. jaxb設置字符串類型
- 9. ASP.Net設置類型從字符串
- 10. 複製C中的字符串成員的結構
- 11. C#如何將結構類型列表轉換爲字符串?
- 12. 如何設置一個結構的特定成員,在C#
- 13. 如何將所有結構成員設置爲相同的值?
- 14. 訪問結構成員字符指針
- 15. 如何設置字符串類型的bean的默認值?
- 16. 如何引用c中的數組結構成員的字符?
- 17. 將DisplayMemberPath設置爲字典的結構值成員
- 18. C++字符串成員構造
- 19. 如何用C中的結構成員中的空格掃描字符串?
- 20. 鑄字字符的結構類型
- 21. 字符串類成員的移動構造函數的行爲
- 22. 類型(鍵:字符串,值:任何)沒有下標成員
- 23. 如何將字符數組複製到結構的成員?
- 24. bsearch未能在結構數組中找到字符串成員
- 25. 結構中的類訪問類成員
- 26. 字節數組結構 - 如何訪問結構成員
- 27. 值類型「字符串」的不具有成員「characterAtIndex」
- 28. 類型'字符串'的值沒有成員'removeVowels'
- 29. 類型的字符串沒有成員迅速
- 30. 基於字符串訪問類成員
C中的對象,C中的字符串?我認爲你需要澄清你的問題多一點:) – HyLian 2009-11-26 08:15:35
@HyLian:C中的對象?是的,在C中,存儲中的所有數據都稱爲「對象」。 C中的字符串?當然,C中有字符串。 – AnT 2009-11-26 10:28:49