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

题目:在一个字符串中找到第一个只出现一次的字符。

举例:输入abaccdeff,则输出b。

答:假设字符占一个字节,则共有256不同的字符,开辟256空间,用查找表。

#include "stdafx.h"
#include <iostream>

using namespace std;

void FindFirstOneChar(char *str)
{
    if (NULL == str)
    {
        return;
    }
    int count[256] = {0};
    char *p = str;
    while (*p != '\0')
    {
        count[*p++]++;
    }
    p = str;
    while (*p != '\0')
    {
        if (1 == count[*p])
        {
            cout<<*p<<endl;
            break;
        }
        p++;
    }
}

int _tmain(int argc, _TCHAR* argv[])
{
    char chArr[100] = "abaccdeff";
    FindFirstOneChar(chArr);
    return 0;
}

运行界面如下:

posted @ 2012-08-25 10:27  venow  阅读(329)  评论(0编辑  收藏  举报