今天笔试联咏科技集团,全是c语言和指针,前一段看了c和指针,多少有点进步,虽然答得不敢说太好,但是也尽力了,总比十一之前好上一点,最后一道题是一个函数,用手写一个函数太困难了,程序猿没有编辑器活不下去啊。。。
回来把函数写下来然后在gcc上编译,结果总是最后出现一个段错误,程序功能是实现了可最后的段错误还是让人不爽,找不到原因
- #include<stdio.h>
- #include<stdlib.h>
- #include<string.h>
- int func(char *string)
- {
- int len=strlen(string);
- printf("length of string is %d\n",len);
- char ch[len];
- int number[len];
- int i,j=0,eqflag=0;
- for(i=0;i<len;i++)
- {
- ch[i]=0;
- number[i]=0;
- }
- char *p=string;
- char *chp=ch;
- while('\0'!=*p)
- {
- eqflag=0;
- for(i=0;i<len;i++)
- { if(*p==ch[i])
- { number[i]++;
- eqflag=1;
- }
- }
- if(!eqflag)
- {
- *chp=*p;
- chp++;
- eqflag=0;
- }
- p++;
- }
- j=1;
- for(i=0;i<len;i++)
- if(number[i]==1)
- {
- printf("first double char is %c\n",ch[i]);
- j-=1;
- break;
- }
- if(j)
- printf("no double char \n");
- printf("%s\n",ch);
- return 0;
- }
- int main()
- {
- char *string;
- printf("input a string!\n");
- scanf("%s",string);
- func(string);
- return 0;
- }
最后总是段错误!
阅读(2326) | 评论(4) | 转发(1) |