在字符串中找出第一个只出现一次的字符

来源:互联网 发布:钓炸天盗号软件app 编辑:程序博客网 时间:2024/06/09 14:08

题目:

      在字符串中找出第一个只出现一次的字符。如输入“abaccdeff”,则输出'b'

题目分析:

      对于在字符串中找出第一个出现一次的字符,联系ASCII码表,能够得到有256中不同的字符,可以利用字符的编码,将每个字符的编码作为数组的下表,建立一个有256个元素的数组arr[256],将数组中的每一个元素对应统计字符的个数,从字符串的第一个字符进行遍历,遇到一个字符给对应的数组元素加1,当数组中的其中一个元素变到2,则输出这个元素所对应的数组下表,即就是这个字符的ASCII码。


    下面为具体的程序:

#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>#include <stdlib.h>#include <string.h> char Find(char *p)  {      if(p == NULL)      {          return '\0';      }        int arr1[256];      int i=0;      for(i=0;i<256;i++)     //初始化数组    {          arr1[i] = 0;      }      char *q=p;      while((*q)!='\0')      {          arr1[*q]++;          q++;      }      q=p;      while(*q!='\0')      {          if(arr1[*q]==1)          {              return *q;          }          q++;      }      return '\0';  }  int main()  {      char arr[256];      printf("请输入:");      gets(arr);      printf("Find:   %2c",Find(arr));     system("pause");    return 0;  }

本文出自 “无心的执着” 博客,转载请与作者联系!

0 0
原创粉丝点击