• C++中利用数组对字符进行除重和排序


    题目:随机输入一组字符,对这组字符进行除重和排序输出,

    例如:输入aafddbc

    输出:abcdf

    程序:

    #include "stdafx.h"
    #include<iostream>
    using namespace std;

    void func1(char str[256], int len)
    {
    int a[256] = { 0 };
    for (int i = 0; i<len; i++)
    {
    if (a[str[i]] == 0)
    a[str[i]] = 1;
    }
    for (int i = 0; i < 256; i++)
    {
    if (a[i] == 1)
    putchar(i);
    }
    cout << endl;
    }

    int _tmain(int argc, _TCHAR* argv[])
    {
    char str[256];
    cin >> str;
    int len = strlen(str);
    func1(str,len);
    return 0;
    }

    体会:此程序中可以利用int a[256]数组来对输入的字符数组char str[256]进行除重和排序,字符和其ASCLL值可以自动转换。

    对str[256]中出现的字符,其字符对应的ASCLL值对应数组a[]的下标i,所以可以对出现的字符对应的下标i,a[i]标记为1,最后输出a[i]=1的下标即是出现的字符ASCLL值,并且对a[i]下标顺序输出,再将 i 转化为字符,即对出现的字符进行排序。这种方法很巧妙!!

    数组的一大优点:可以对定义的数组的任何位置,通过数组下标进行赋值和输出

  • 相关阅读:
    如何创建不可变的Java类或对象
    Java动态代理
    Java序列化和克隆
    关于 Java高新技术的一些认识
    利用Servlet在客户端输出PDF文件
    学好Java语言的几大要点
    父进程结束子进程怎么办?
    wait/waitpid
    速记
    pip使用镜像的方法
  • 原文地址:https://www.cnblogs.com/warmbeast/p/5301098.html
Copyright © 2020-2023  润新知