2016-09-29 35 views
0

喜的朋友一個功能我有這個功能在C語言主掃描值,並將其傳遞給轉換該值C語言

struct webtech tramafunction(); 

此功能收到這樣

/*¶bL0 L3,01,+08590323,-079343001,010215,00000000000000,-tN,000,012689997,001219456,000,7FF2,C07F,0,4,*/ 

然後功能使這個:

struct webtech tramafunction(){ 
struct webtech wbt; 
char buf[103]=""; 
scanf("%[^\t\n]s",buf); 
printf("\n \n data destinated to convert=[%s]\n\n", buf); 
int z; 
z=strlen(buf); 
printf("size of data: %d",z); 
int i = 0; 
char *p = strtok (buf, ","); 
char *array[16]={0}; 
while (p != NULL) 
{ 
    array[i++] = p; 
    p = strtok (NULL, ","); 
} 

for (i = 0; i <16; ++i){ 
    wbt.x15 = 0; 
    if (array[i] != NULL){ 
     wbt.x15=atoi(array[15]); 
    } 

printf("data: [%s]\n", array[i]); 
} 



printf("\n \t \t --data--\n"); 

strcpy(wbt.indice,array[0]); 
printf("INDEX: [%s]\n",wbt.indice); 


wbt.prid=atoi(array[1]); 
printf("PRE INDEX: [%d]\n",wbt.prid); 
return wbt; 
} 

主要做到這一點:

int main() 
{ 

struct webtech con; 

con = tramafunction(); 
return 0; 

} 

問題是我該如何讓數據被轉換(char buf [])在main中讀取,而不是在函數中讀取。

+0

注:這是一個後續在問題[從此](http://stackoverflow.com/questions/39775122/a-function-that-return-values-from-a-structure-in-c) –

+0

在for(i = 0;我<16; ++ i){'爲什麼在循環中使用硬編碼數組索引'[15]'而不是'[i]'?該循環在每次迭代中重複相同的操作。 –

回答

0

你只需要聲明變量

char buf[103] = ""; 

在函數內部,在頭太

struct webtech tramafunction(char buf[103]); 

主:

int main() 
{ 

struct webtech con; 
char tr[103]=""; 
scanf("%[^\t\n]s",tr); 
con = tramafunction(tr); 
return 0; 

}