我正在編寫一個代碼,我要解析一個傳入的字符串(基本上這是爲embeddded項目,但我想先在C中測試它) 。字符串可以是一個GPS輸出,基本上是一個NMEA字符串。儘管我已經使用strdup和strtok函數進行了解析,但是當我解析時,只是使用字符串和指向該字符串的指針進行了解析。使用指向字符串的指針解析字符串而不使用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;
}
,但這樣做的輸出中是整個inputstring而不是第12 characters.I進一步挖掘了這一點,並發現,* PTR當點inputstring,其指向inputstring [0] ,將整個複製字符串,而不是複製前12個字符。我們可以限制這個嗎?
需要幫助。我有一個替代方法,但需要幫助挖掘我的這個代碼。
感謝,它works.well我們可以ofcourse使用的strcpy also.And我才知道,如果我們使用的是* ptr,ptr [0]將指向整個inputstring [],這就是爲什麼早些時候我得到整個輸入字符串複製到ptr。 – shailendra 2013-05-07 11:54:14