2017-09-14 57 views
-3

我有一个char数组,它是以下形式:如何从一个字符数组得到“串”用C

[17字符,一个标签炭,17个字符,一个标签炭,17个字符,一个标签char,代表长度为1到4位数字的char,空字节]

我想存储位于tab变量和空字节之间的字符在新变量中。

例1:这可能是我的字符数组:

[1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6 ,如图7所示,\吨,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,\吨,1,2,3,4- ,5,6,7,8,9,0,1,2,3,4,5,6,7,\ t,3,4,\ 0]

我想保存int 34在一个名为x的变量中。

例2:这可能是我的字符数组:

[1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6 ,如图7所示,\吨,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,\吨,1,2,3,4- ,5,6,7,8,9,0,1,2,3,4,5,6,7,\ t,5,9,9,\ 0]

我想保存int 599在一个名为x的变量中。

如果我知道该数字的位数,但我不确定如何解决具有若干未知长度的问题,我可以轻松地做到这一点。

任何帮助将不胜感激。

+0

查找'memcpy()'。 –

+0

谢谢,但是通过阅读memcpy()的文档,似乎 你不能选择除0以外的起始索引(即只能得到字符串的前n个字符),而不是索引a之间的n个字符和索引b。 – Mathboy

+0

当然可以,通过指针算术。只需在指针值中加上'a'即可。 –

回答

0

比方说,您的字符串(又名char阵列)指向str,因为你似乎需要一个int这个数字,那么你可以使用atoi(str + 3 * (17 + 1))得到你想要的东西。

如果你想在另一个字符串中,那么你可以使用strcpy(str2, str + 3 * (17 + 1))假设你的缓冲区指向str2

顺便说一句,你需要包括stdlib.hatoi()string.hstrcpy()

相关问题