zoukankan      html  css  js  c++  java
  • 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 转化为字符,即对出现的字符进行排序。这种方法很巧妙!!

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

  • 相关阅读:
    请输出in.txt文件中的2 4 6 8 9 10 12行
    shell 求总分
    快速排序小结
    串的模式匹配和KMP算法
    重定向和转发的区别
    servlet中文乱码问题
    JAXP简介
    DOM常用方法总结
    初探javascript
    现在网站主流排版方式
  • 原文地址:https://www.cnblogs.com/warmbeast/p/5301098.html
Copyright © 2011-2022 走看看