我正在编写一个代码,我想在其中解析传入的字符串(基本上这是用于嵌入式项目,但我想先在 C 中测试它)。字符串可以是 GPS 输出,基本上是 NMEA 字符串。即使我有使用 strdup 和 strtok 函数完成解析,但是当我仅使用字符串和指向该字符串的指针进行解析时,我被卡住了。
#include<stdio.h>
int main()
{int i;
char inputstring[100]; //i assumed it to be input string, in this case enter by user.
char *ptr[12];
printf("Enter the string to be printed now.: \n");
scanf("%s",inputstring);
printf("the input string being received from the user is = \n %s \n", inputstring);
for(i=0;i<12;i++) /*used this for loop to get first 12 characters from inputstring copied into ptr[i] */
{
ptr[i] = &inputstring[i];
}
printf("value of store is = %s \n",*ptr);
return 0;
}
但是它的输出是整个输入字符串而不是前 12 个字符。我进一步挖掘并发现 *ptr 当指向输入字符串时,它指向输入字符串 [0] 并将复制整个字符串而不是先复制12 个字符。我们如何限制这个?
需要帮助。我有另一种方法,但需要帮助才能挖掘出我的这段代码。