我有一串電話號碼字符串,我必須在其中插入連字符。我應該使用什麼字符串函數,以及如何? 謝謝。 :D將連字符插入字符串C++
回答
使用STL字符串函數。遍歷字符串數組過來,併爲每個字符串,這樣做:
str_num = str_num.substr(0,3) + "-" + str_num.substr(3,3) + "-" + str_num.substr(6,4);
編輯:您可以使用insert()
還有,我認爲這將是一個更好的辦法。
不,您正在連接。 – wilhelmtell 2009-11-16 23:49:44
這真的是效率低下,它使字符串的幾個不必要的副本。 – 2009-11-16 23:50:07
非常感謝!它工作完美。 :D – user212463 2009-11-17 00:03:41
嗯,我不會給出答案,但最簡單的做法是使用std::string::insert
方法,假設您正在執行C++。
對於C字符串,您必須手動複製周圍的字符。我可能會使用sprintf
。
strncat將是更有用的C風格字符串函數。 – 2009-11-17 00:01:57
你至少需要三次獨立調用'strcat'或類似的函數,或者你可以像'sprintf(buf,「%.3s - %。3s - %。4s」,s,s + 3,s + 6)'。只是一個風格問題,真的。 – 2009-11-17 00:30:22
您可以使用strtok
函數將其分割爲令牌。
char * strtok (char * str, const char * delimiters);
如果沒有分隔符,則無法分割。 10位數字中的分隔符在哪裏可以將其分割爲(3,3,4)數字? – 2009-11-17 00:14:32
@Joy Dutta我同意,但是當我發佈答案時,我腦海裏還有其他東西。現在我會使用迭代器。 – Secko 2009-11-17 00:36:24
你想要的是給每個字符串添加兩個字符,在兩個特定的位置。
創建一個函數,該函數只需要一個電話號碼字符串並在適當的位置添加連字符。這是一個很好的例子,它很容易使用字符串連接,但這是一個壞習慣。相反,您可以使用string::insert()
在適當的位置放置連字符。
一旦你寫了這個簡單的函數,你所要做的就是迭代數組並在每個元素上應用函數。巧合的是for_each()
函數可以做到這一點。你會在<algorithm>
找到它。
#include<string>
#include<algorithm>
void with_hyphens(string& phone)
{
// as explained above
}
// ...
{
for_each(array, array + ARRAY_LENGTH, &with_hyphens);
}
- 1. 將字符串插入字符串C#
- 2. 將字符串插入字符串?
- 3. 將Android字符插入字符串
- 4. 將字符插入到字符串中
- 5. 將字符串(逐字符)插入較大的字符串
- 6. 將字符串插入字符串中的連續數字後面?
- 7. 在字符串中插入字符串
- 8. 在字符串中插入字符串
- 9. 字符串插入
- 10. Objective c - 將字符插入某些字符之間的字符串
- 11. 如何在C#中連接字符串時插入分隔符?
- 12. 如何在字符串的字符串處插入字符串?
- 13. c#在字符串中間插入字符串
- 14. 單獨向字符串c插入字符串#
- 15. 按字符串分割字符串並插入列表C#
- 16. 插入字符字符串結束數
- 17. 插入Unicode字符爲VBA字符串
- 18. 在字符串中插入字符(Swift)
- 19. 插入字符到SQL字符串
- 20. 從字符輸入連接字符串
- 21. PHP字符串插入串
- 22. 字符串插入串
- 23. 字符串::在插入串
- 24. 將字符串轉換爲迴文字符串,最小插入
- 25. 將字符串插入給定索引的字符串
- 26. 將字符串隨機插入另一個字符串
- 27. 將字符串插入另一個字符串
- 28. 如何將字符串插入另一個字符串?
- 29. 將字符串插入字符串的特定部分
- 30. Smalltalk,如何將字符串插入到字符串中
這是一個功課題嗎?你想在哪裏得到連字符?給出一個輸入電話號碼及其相應輸出電話號碼的例子。 – wilhelmtell 2009-11-16 23:45:06
你的字符串是'std :: string'實例還是'char *'s? – 2009-11-16 23:45:25
是的,這是一項家庭作業 3823920578 = 382-392-0578 – user212463 2009-11-16 23:46:10