Τα char (χαρακτήρες) στην C# αναφέρονται σε έναν μόνο χαρακτήρα, όπως ένα γράμμα, ψηφίο ή σύμβολο. Σκέψου το σαν ένα κομμάτι κειμένου, αλλά αντί να είναι μια λέξη ή πρόταση, είναι μόνο ένα γράμμα.

Χαρακτηριστικά του char στην C#:

  1. Μέγεθος: Κάθε char καταλαμβάνει 2 bytes (16 bits) στη μνήμη, γιατί χρησιμοποιεί το πρότυπο Unicode. Αυτό σημαίνει ότι μπορεί να αποθηκεύσει όλους τους χαρακτήρες από πολλές γλώσσες του κόσμου.
  2. Δήλωση: Για να δηλώσεις έναν χαρακτήρα στην C#, βάζουμε τον χαρακτήρα ανάμεσα σε απλά εισαγωγικά (π.χ. 'A', '3', '#').

char myChar = ‘A’;

Παράδειγμα:

char letter = ‘B’; // Ένας χαρακτήρας ‘B’

char digit = ‘7’; // Ένας αριθμός ως χαρακτήρας

char symbol = ‘!’; // Ένα σύμβολο

Unicode χαρακτήρες: Μπορείς να χρησιμοποιήσεις Unicode κωδικούς για ειδικούς χαρακτήρες.

char greekLetter = '\u0391';  // Ο χαρακτήρας 'Α' (Άλφα στα ελληνικά)

Πράξεις με char: Μπορείς να συγκρίνεις χαρακτήρες ή να τους μετατρέψεις σε αριθμούς (ASCII ή Unicode τιμές).

char letter1 = ‘A’; char letter2 = ‘B’;

bool areEqual = (letter1 == letter2); // false γιατί ‘A’ ≠ ‘B’

Unicode Χαρακτήρες

Το Unicode είναι ένα σύστημα κωδικοποίησης χαρακτήρων που επιτρέπει την αποθήκευση χαρακτήρων από πολλές γλώσσες και σύμβολα σε υπολογιστές. Στην C#, μπορείς να χρησιμοποιήσεις Unicode escape sequences για να δηλώσεις χαρακτήρες που δεν πληκτρολογούνται εύκολα ή για να προσθέσεις ειδικούς χαρακτήρες.

Για παράδειγμα:

  • Ο κωδικός \u0391 αντιστοιχεί στο ελληνικό κεφαλαίο άλφα (Α).
  • Ο κωδικός \u03A9 αντιστοιχεί στο ελληνικό κεφαλαίο ωμέγα (Ω).

Κάθε χαρακτήρας έχει έναν μοναδικό αριθμό στο σύστημα Unicode. Αυτοί οι αριθμοί αναπαρίστανται με 16-bit κωδικούς (ή παραπάνω σε ειδικές περιπτώσεις) και ξεκινούν με \u ακολουθούμενοι από τέσσερα δεκαεξαδικά ψηφία.

Παράδειγμα:

char alpha = '\u0391'; // 'Α' (Άλφα)
char omega = '\u03A9'; // 'Ω' (Ωμέγα)

Console.WriteLine(alpha);  // Εκτυπώνει Α
Console.WriteLine(omega);  // Εκτυπώνει Ω

Μπορείς να βρεις τους κωδικούς Unicode για κάθε χαρακτήρα σε πίνακες Unicode στο διαδίκτυο, εάν χρειάζεσαι κάποιον συγκεκριμένο.

5. Πράξεις με char

5.1 Σύγκριση χαρακτήρων

Οι χαρακτήρες μπορούν να συγκριθούν μεταξύ τους στην C#. Αυτό συμβαίνει γιατί κάθε χαρακτήρας έχει έναν αριθμητικό κωδικό στον υπολογιστή, είτε βασισμένο στο ASCII είτε στο Unicode. Για παράδειγμα, το 'A' έχει αριθμητική τιμή 65 στο ASCII, και το 'B' έχει αριθμητική τιμή 66.

Όταν συγκρίνεις χαρακτήρες, συγκρίνεις αυτούς τους αριθμητικούς κωδικούς. Έτσι, μπορείς να δεις αν ένας χαρακτήρας είναι μεγαλύτερος, μικρότερος ή ίσος με έναν άλλο.

Παράδειγμα:

char letter1 = 'A';
char letter2 = 'B';

bool areEqual = (letter1 == letter2);  // false γιατί 'A' ≠ 'B'
bool isLess = (letter1 < letter2);     // true γιατί 'A' (65) < 'B' (66)

5.2 Μετατροπή χαρακτήρων σε αριθμούς

Μπορείς να μετατρέψεις έναν χαρακτήρα στην αριθμητική τιμή του (ASCII ή Unicode) με διάφορους τρόπους.

Παράδειγμα:

char letter = ‘A’;
int asciiValue = (int)letter; // Μετατροπή του ‘A’ στον αριθμό του ASCII (65)
Console.WriteLine(asciiValue); // Εκτυπώνει 65

5.3 Ενέργειες με χαρακτήρες

Μπορείς να κάνεις αριθμητικές πράξεις με χαρακτήρες, επειδή όπως είπαμε οι χαρακτήρες έχουν αριθμητική τιμή. Για παράδειγμα, μπορείς να προσθέσεις ή να αφαιρέσεις χαρακτήρες:

char letter = 'A';
char nextLetter = (char)(letter + 1); // Προσθέτουμε 1 στην τιμή του 'A' και παίρνουμε 'B'
Console.WriteLine(nextLetter); // Εκτυπώνει B

Παράδειγμα αφαίρεσης:

char letter = 'C';
char previousLetter = (char)(letter - 1);  // Αφαιρούμε 1 και παίρνουμε 'B'
Console.WriteLine(previousLetter);         // Εκτυπώνει B

Εισαγωγή απο τον χρήστη

using System;

class Program
{
    static void Main()
    {
        Console.WriteLine("Δώστε έναν χαρακτήρα:");
        string input = Console.ReadLine();  // Διαβάζει μια γραμμή από το χρήστη

        if (!string.IsNullOrEmpty(input))  // Έλεγχος αν η είσοδος δεν είναι κενή
        {
            char userChar = input[0];  // Παίρνει τον πρώτο χαρακτήρα της εισόδου
            Console.WriteLine("Ο χαρακτήρας που δώσατε είναι: " + userChar);
        }
        else
        {
            Console.WriteLine("Δεν δώσατε κανένα χαρακτήρα.");
        }
    }
}

Εισαγωγή από τον Χρήστη

public void Register()
{
char Name;
Console.WriteLine(“Please enter your name”);
bool Names = char.TryParse(Console.ReadLine() ?? string.Empty, out Name);

 if (!(char.IsDigit(Name)) || (!char.IsWhiteSpace(Name)))
 {
     for (int i = 0; i < 1; i++)
     {
         Console.WriteLine("Please enter valid input");
         bool Namess = char.TryParse(Console.ReadLine() ?? string.Empty, out Name);

     }
 }