不兼容类型错误 main() { 文件*fin; 字符行[50]; charexp[SIZE]; fin=fopen(“prefix.txt”、“r”); 如果(fin==NULL) { printf(“\n无法打开文件\n”); } 其他的 { printf(“\n打开的文件\n”); while(fgets(line,sizeof(line),fin)!=NULL) { sscanf(行“%s”,exp); exp=删除_空格(exp); } } 财务总监(财务); getch(); } char delete_空格(char a[] { int l,k=0,i=0; l=斯特伦(a); 虽然(i

不兼容类型错误 main() { 文件*fin; 字符行[50]; charexp[SIZE]; fin=fopen(“prefix.txt”、“r”); 如果(fin==NULL) { printf(“\n无法打开文件\n”); } 其他的 { printf(“\n打开的文件\n”); while(fgets(line,sizeof(line),fin)!=NULL) { sscanf(行“%s”,exp); exp=删除_空格(exp); } } 财务总监(财务); getch(); } char delete_空格(char a[] { int l,k=0,i=0; l=斯特伦(a); 虽然(i,c,arrays,string,incompatibletypeerror,C,Arrays,String,Incompatibletypeerror,这里,您正在传递数组地址以删除call delete_spaces(exp)中的_spaces(char a[]),因此您不需要获取返回值并将其赋值为 main() { FILE *fin; char line[50]; char exp[SIZE]; fin=fopen("prefix.txt","r"); if(fin==NULL) { printf("\nFile Cannot be Opened\n"); } else { prin

这里,您正在传递数组地址以删除call delete_spaces(exp)中的_spaces(char a[]),因此您不需要获取返回值并将其赋值为

main()
{
FILE *fin;
char line[50];
char exp[SIZE];
fin=fopen("prefix.txt","r");

if(fin==NULL)
{
     printf("\nFile Cannot be Opened\n");              
}
else
{
        printf("\nfile opened\n");

       while(fgets(line, sizeof(line), fin)!=NULL)
       {
              sscanf(line, "%s", exp);

              exp=delete_spaces(exp);
       }    
}
fclose(fin);
getch();   
}

char delete_spaces(char a[])
{
   int l,k=0,i=0;
   l=strlen(a);

   while(i<l)
   {
        if(a[i]==' ')
        i++ 
        else
        a[k++]=a[i++];    
   } 
   return a;    
}
相反,将函数定义更改为

exp=delete_spaces(exp);
和函数调用

void delete_spaces(char a[]);
并将函数的定义或原型置于main()之前,并从delete_spaces()定义中删除return语句

delete_spaces()的代码将是

void delete_空格(char a[]
{
int l,k=0,i=0;
l=斯特伦(a);

当(i@user39495好的。我更改了答案,检查一下。这可能会有帮助。是的,它正在工作,但早些时候为什么不工作working@user39495它不起作用,因为exp是一个字符数组,在C字符[]中和char*不一样。阅读或相关问题以了解一些想法。上面的函数delete_spaces接受任何数组并删除字符之间的空格,上面的代码可以工作吗???@user39495 ya它可以工作,但添加一个[k]='\0'。检查我添加到答案中的代码。这可能会对您有所帮助
delete_spaces(exp);
void delete_spaces( char a[])
{
    int l,k=0,i=0;
   l=strlen(a);

   while(i<l)
   {
        if(a[i]==' ')
        i++; 
        else
        a[k++]=a[i++];    
   } 
   a[k]='\0';
}