我有一個char* str
它指向一個字符串說「22 3 43 5」。我需要將它存儲到一個向量(1-d數組)中,例如char *vec[]
,這樣,vec[0]="22"
等等
它是如何完成的?分割字符串與空間向量的字符串在C
回答
這是可以做到如下圖所示:
char str[20] = "22 3 43 5";
char *vec[4];
int i=0;
char *p = strtok(str," ");
while(p!= NULL)
{
vec[i] = malloc(20); /* Free the memory once you are done using it */
strcpy(vec[i],p);
p = strtok(NULL," ");
i++;
}
如果你有
char* str = "22 3 43 5";
然後str
是一個字符串文字,它是隻讀和strtok()
改變了傳遞的字符串,所以你可能看到崩潰。
編輯:
strotk()
功能是有幫助的字符數組打入基於分隔符標記。在這裏,我正在使用相同的方法,並使用空格作爲分隔符將char數組分解爲令牌,並將每個令牌複製到向量中。 vec[i]
。其中vec
是指針數組,對於每個指針我分配內存並將令牌複製到它。
我不知道在更大的字符串中分隔的子字符串的數量 – 2015-01-21 11:19:28
@Wamiq這應該工作 – Gopi 2015-01-21 11:24:30
它會工作。他問他不知道「i <4」這樣的空格。只要消除他可能接受的條件即可。 – 2015-01-21 11:32:19
- 1. - C#,與分割字符串
- 2. 在白色空間分割字符串
- 3. 分割字符串用空格在C#
- 4. 分割字符串的字符C#
- 5. 分割字符串與「在C#
- 6. 分割字符串選擇上空間
- 7. 分割字符串只是空間
- 8. 字符串分割,以適應空間
- 9. C++分割字符串
- 10. 分割字符串C#
- 11. C#分割字符串
- 12. 分割字符串C++
- 13. ANSI C分割字符串
- 14. C分割字符串
- 15. C#分割字符串?
- 16. C++分割字符串?
- 17. 字符串分割ASP.NET/C#
- 18. C# - 分割字符串
- 19. 分割字符串與Java
- 20. 分割字符兩者之間的字符串在C#
- 21. 字符串分割到字符串
- 22. Ç - 字符串分割成字符串
- 23. 字符串分割到字符串
- 24. 分割字符串,空的空間也被認爲是字符串如何丟棄空字符串
- 25. 分割字符串
- 26. 分割字符串
- 27. 分割字符串
- 28. 分割字符串
- 29. 分割字符串
- 30. 分割字符串
使用'sscanf'。它在遇到空格時停止閱讀。 – saadtaame 2015-01-21 11:44:26
語言C沒有載體。那將是C++。如果你的意思是數組,那麼寫數組。如果您的意思是在編譯時未知其大小的數組,請寫入動態數組。 – pts 2015-01-21 13:01:51