朋友们,我在C语言中有这个功能
struct webtech tramafunction();
此函数会收到类似这样的值
/*¶bL0 L3,01,+08590323,-079343001,010215,00000000000000,-tN,000,012689997,001219456,000,7FF2,C07F,0,4,*/
然后函数make this:
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 :(得分: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;
}