Sortowanie znaków/c++

0

Witam mam takie pytania:

  1. Czy można posortować znaki w odpowiedniej kolejności jaką się podało na początku tak jak liczby czy raczej nie?
  2. Możecie mi powiedzieć, czy można podstawić pod znak liczbę, czyli jakoś oszukać kompilator? Chodzi mi o zamianę zmiennych char na liczby żeby można było je później posortować.
0

Ale przecież znaki są przechowywane jako liczby (ASCII)

0
  1. można
  2. można

zmienna char przechowuje znak w postaci liczby. pierwsze 128 pozycji [0..127] to kod ASCII,
dalsze [128..255] są zależne od tzw. strony kodowej. w polskich windowsach używane jest tu domyślnie kodowanie CP1250.

w języku C++ znaki w zakresie [128..255] są często traktowane jako w zakresie [-128..-1], ze względu na to że typ char w wielu kompilatorach oznacza signed char zamiast unsigned char.

#include <stdio.h>
int main()
{
  char c = 'F';
  printf("%c\n", c); // F
  printf("%d\n", (int)c); // 70, czyli znak 'F'==70
}
0

Śmierdzi mi OI, ale pomogę trochę, jeśli chcesz otrzymać ze znaku liczbę z zakresu <0; 24> to robisz (w C/C++) tak:

c - 'A'

Ja proponuję to machnąć jako makro procesora (lub funkcję inline jeśli to C++):

#define ORD(c) ((c) - 'A')

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0