我有一个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