假設我有一段字符串「abcd
」我想要一個函數從「abcd
」得到char'a
',另一個函數從「abcd
」得到「bcd
」。C++如何提取字符串的第一個和其餘部分?
回答
假設你正在使用std::string
,你想:
str[0] // for the first char
str.substr(1) // for the rest of string
如果您使用標準的C char*
字符串,你想:
str[0] // for the first char
((char*)str+1) // or
&str[1] // for the rest of string
當使用前一種方法,確保您'正在捕獲out_of_range
異常,或者在調用之前檢查字符串長度。
編輯:我知道我以前給過一個C++。NET示例。
你在找什麼是substr
方法。如果你有一個包含「abcd」的字符串s
,執行s.substr(0,1)
會給你一個包含「a」的字符串,而s.substr(1,3)
會給你一個包含「bcd」的字符串。
std :: string沒有子字符串方法 - 這是C#。誰在投票呢? – 2011-06-13 22:08:37
爲什麼還有這樣的降價?它已被糾正。 – Tim 2011-06-14 01:05:16
@Tim:當答案「糾正」時,downvotes不會自動消失。 – 2011-06-15 23:41:19
TCHAR s[] = _T("abcd");
// Get 'a'
TCHAR c = s[0];
// Get "bcd"
TCHAR *p = s + 1;
僅供參考,'TCHAR'不是ANSI/ISO C或C++的一部分。雖然OP沒有指定字符串格式。 – 2011-06-13 22:23:35
@Thomas:我不知道我說的是哪裏。你因爲我存在的代碼味道而投票給我? – 2011-06-13 23:03:45
我沒有投票給你。我只是說'TCHAR'不是ANSI C或C++。一般來說,當OP沒有提供平臺信息時,其目標是提供符合ANSI標準的答案。 「TCHAR」是微軟的一項發明。 – 2011-06-14 16:26:45
- 1. 提取字符串的第一部分
- 2. Python熊貓提取,如何提取字符串的其餘部分
- 3. 從字符串的其餘部分提取前導空格
- 4. 如何提取一部分字符串?
- 5. 如何提取一部分字符串?
- 6. 獲取字符串流的其餘部分C++
- 7. 提取字符串c的部分#
- 8. 得到一個字符串的其餘部分用JavaScript
- 9. 取第一個字符串輸入,然後忽略其餘
- 10. 如何在C++中提取一部分字符串?
- 11. 如何在第一個64字節之後讀取文件的其餘部分?
- 12. 如何提取第一個(可變)html標記之間的部分字符串?
- 13. 如何提取字符串中第一個空格之前的部分文本?
- 14. 如何在C#中提取字符串一個字符串的
- 15. 如何提取部分字符串
- 16. cmd:如何提取部分字符串?
- 17. 如何提取部分字符串?
- 18. 提取字符串的一部分
- 19. 提取字符串的一部分
- 20. 提取字符串的一部分
- 21. 提取長字符串的一部分。
- 22. PHP提取字符串的一部分
- 23. 提取部分字符串從一個字符串在java中
- 24. 提取部分字符串
- 25. 提取部分字符串
- 26. 提取部分字符串?
- 27. 如何從字符串中提取url,其中包含協議和地址其餘部分之間的空格?
- 28. 如何提取一部分由空格分隔的字符串?
- 29. 用sscanf讀取字符串的其餘部分
- 30. 刪除特定字符後的字符串的其餘部分
你說的是std :: string,還是隻是一般意義上的「字符串」? – Tim 2011-06-13 22:07:47
@Tim在C++中,std :: string是「一般意義上的」。 – 2011-06-13 23:00:50
@尼爾 - 那麼 - 那些知道C++肯定 - 但如果一個人不得不問這個問題,我不會假設太多... – Tim 2011-06-14 01:04:51