如何从 C 中的字符数组中获取 "substring"

How to get "substring" from a char array in C

我有一个 char 数组,其形式为:

[17 个字符,一个制表符,17 个字符,一个制表符,17 个字符,一个制表符,一个表示长度介于 1 到 4 位之间的数字的字符,空字节]

我想将位于制表符字符和空字节之间的字符存储在一个新变量中。

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

[1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,\t,1,2,3,4 ,5,6,7,8,9,0,1,2,3,4,5,6,7,\t,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,\t,1,2,3,4 ,5,6,7,8,9,0,1,2,3,4,5,6,7,\t,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 的变量中。

如果我知道该数字的位数,我可以很容易地做到这一点,但我不确定如何解决数字长度未知的问题。

非常感谢任何帮助。

假设您的字符串(又名 char 数组)由 str 指向,因为您似乎需要 int 中的那个数字,那么您可以使用 atoi(str + 3 * (17 + 1)) 得到你想要的。

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

顺便说一句,您需要为 atoi() 添加 stdlib.h,为 strcpy() 添加 string.h