Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1722706
  • 博文数量: 1493
  • 博客积分: 38
  • 博客等级: 民兵
  • 技术积分: 5834
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-19 17:28
文章分类

全部博文(1493)

文章存档

2016年(11)

2015年(38)

2014年(137)

2013年(253)

2012年(1054)

2011年(1)

分类:

2012-10-15 08:51:40

今天笔试联咏科技集团,全是c语言和指针,前一段看了c和指针,多少有点进步,虽然答得不敢说太好,但是也尽力了,总比十一之前好上一点,最后一道题是一个函数,用手写一个函数太困难了,程序猿没有编辑器活不下去啊。。。
回来把函数写下来然后在gcc上编译,结果总是最后出现一个段错误,程序功能是实现了可最后的段错误还是让人不爽,找不到原因

点击(此处)折叠或打开

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<string.h>


  4. int func(char *string)
  5. {
  6.     int len=strlen(string);
  7.     printf("length of string is %d\n",len);
  8.     char ch[len];
  9.     int number[len];
  10.     int i,j=0,eqflag=0;
  11.     for(i=0;i<len;i++)
  12.     {
  13.         ch[i]=0;
  14.         number[i]=0;
  15.     }
  16.     char *p=string;
  17.     char *chp=ch;
  18.     while('\0'!=*p)
  19.     {
  20.         eqflag=0;
  21.         for(i=0;i<len;i++)
  22.         {    if(*p==ch[i])
  23.             {    number[i]++;
  24.                 eqflag=1;
  25.             }
  26.         }
  27.         if(!eqflag)
  28.         {
  29.             *chp=*p;
  30.             chp++;
  31.             eqflag=0;
  32.         }            
  33.         p++;
  34.     }
  35.     j=1;
  36.     for(i=0;i<len;i++)
  37.         if(number[i]==1)
  38.         {
  39.         printf("first double char is %c\n",ch[i]);
  40.         j-=1;    
  41.         break;
  42.         }
  43.     if(j)
  44.     printf("no double char \n");
  45.     printf("%s\n",ch);
  46.     return 0;
  47. }

  48. int main()
  49. {
  50.     char *string;
  51.     printf("input a string!\n");
  52.     scanf("%s",string);
  53.     func(string);
  54.     return 0;
  55. }
最后总是段错误!
阅读(434) | 评论(0) | 转发(0) |
0

上一篇:SQLite学习整理

下一篇:Linux系统调用列表

给主人留下些什么吧!~~