首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

初学者请问一个C有关问题

2012-03-22 
菜鸟请教一个C问题#includestdio.hcharsqueeze(chars1,chars2){inti0,j0,k0,a0,b1,schars3while(

菜鸟请教一个C问题
#include   <stdio.h>
char   squeeze(char   s1,char   s2)
{
        int   i=0,j=0,k=0,a=0,b=1,s;
        char   s3;
        while(s1[i++]!= '\0 ')
        {       s=1;
                for(;s2[j]!= '\0 ';j++)
                if(s1[i]==s2[j])   s*=a;
                if(s)
                s3[k++]=s1[i];
        }
        s3[k]= '\0 ';
        return   s3;
}
这个函数有什么问题啊,编译时出现错误

[解决办法]
如果是C的话,得把变量声明和定义放在函数的前面,并且声明放在定义的前面。
即:
char s3;
int s;
int i=0,j=0,k=0,a=0,b=1;

[解决办法]
还有,s1和s2是char还是char *?
[解决办法]
char squeeze(char *s1,char *s2)
[解决办法]
先改为char squeeze(char* s1,char* s2)
因为你在下面用到了s1[]、s2[],这是数组,不是字符变量。
[解决办法]
char 只是一个字符
应该用char*
否则s1[i++],肯定错误
[解决办法]
应该是char* squeeze(char *s1,char *s2)
但是你返回一个局部变量的指针是错误的

static char s3[1024];
[解决办法]
//s1,s2,s3是一个字符,不是地址,你如同数组样的使用,怎么可以

热点排行