C语言:通过调试发现,不进if()条件判断语句,请问C语言高手是怎么回事?

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>

struct decode
{
int start_size;
int size_count;
char data_type[10];
char dis_type[10];

}dec_excel[10];

void check()
{
int i;
FILE *fp1,*fp2;
char line[100];
char *p;
fp1=fopen("E:\\decode1.csv","r");
fp2=fopen("E:\\decode2.csv","w");
if(fp1==NULL)
{
printf("cannot open decode1\n");
exit(0);
}

if(fp2==NULL)
{
printf("cannot open decode2\n");
exit(0);
}

for(i=0;i<10;i++)
{
fgets(line,sizeof(struct decode)+1,fp1);

p=strtok(line,",\n");
dec_excel[i].start_size=atoi(p);
p=strtok(NULL,",\n");
dec_excel[i].size_count=atoi(p);
p=strtok(NULL,",\n");
strcpy(dec_excel[i].data_type,p);
if ( (dec_excel[i].size_count==1) && (dec_excel[i].data_type=="原码"))
strcpy(dec_excel[i].dis_type,"UINT8");
if (dec_excel[i].size_count==1 && dec_excel[i].data_type =="补码")
strcpy("INT8",dec_excel[i].dis_type);

if (dec_excel[i].size_count==2 && dec_excel[i].data_type=="原码")
strcpy(dec_excel[i].dis_type,"UINT16");
if (dec_excel[i].size_count==2 && dec_excel[i].data_type =="补码")
strcpy(dec_excel[i].dis_type,"INT16");

if (dec_excel[i].size_count==4 && dec_excel[i].data_type=="原码")
strcpy(dec_excel[i].dis_type,"UINT32");
if (dec_excel[i].size_count==4 && dec_excel[i].data_type =="补码")
strcpy(dec_excel[i].dis_type,"INT32");

}

for(i=0;i<10;i++)
{
fprintf(fp2,"%s\n",dec_excel[i].dis_type);
}

fclose(fp1);
fclose(fp2);

}

int main()
{
check();
return(0);
}
如上C程序,我是想将如下截图内容读入:

然后,通过条件判断语句,将判断结果再写入“decode2”表格中,想达到如下截图中所示(第四列)结果:

请各路C语言高手,帮忙给看看!在此谢谢了!

第1个回答  推荐于2017-09-22
字符串比较不能用 "==”,要用 strcmp 函数
第2个回答  2015-06-08
strcmp(a,b) == 0来比较字符串大小
相似回答