Web - Amazon

We provide Linux to the World


We support WINRAR [What is this] - [Download .exe file(s) for Windows]

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
SITEMAP
Audiobooks by Valerio Di Stefano: Single Download - Complete Download [TAR] [WIM] [ZIP] [RAR] - Alphabetical Download  [TAR] [WIM] [ZIP] [RAR] - Download Instructions

Make a donation: IBAN: IT36M0708677020000000008016 - BIC/SWIFT:  ICRAITRRU60 - VALERIO DI STEFANO or
Privacy Policy Cookie Policy Terms and Conditions
Typ znakowy - Wikipedia, wolna encyklopedia

Typ znakowy

Z Wikipedii

Typ znakowy – jeden z podstawowych typów danych w wielu językach programowania, mający na celu przechowywanie pojedynczego znaku tekstu.

W językach C i C++ typ ten jest po prostu jednobajtową liczbę całkowitą (może być ona ze znakiem, w przypadku signed char; lub bez znaku, dla unsigned char; w przypadku nie podania kwalifikatora signed/unsigned rodzaj liczby zależy od implementacji). W Pascalu natomiast typ znakowy nie jest typem liczbowym (do konwersji używa się funkcji Chr lub Asc). Wewnętrznie jednak znak jest zawsze reprezentowany przez jego kod, w zależności od implementacji będzie to ASCII, EBCDIC, Unicode itp.

Spis treści

[edytuj] Typy znakowe w językach programowania

  • C/C++char, signed char, unsigned char;
  • PascalChar;
  • Fortrancharacter.

[edytuj] Przykłady zastosowań

[edytuj] Przykład w C

Przykładowe działania na zmiennej typu char:

#include <stdio.h>

// funkcja pomocnicza - wartość bezwzględna
char abs(char cChar)
{
   if (cChar >= 0)
   {
      return cChar;
   }
   return -cChar;
}

int main()
{
   char cZnak;
   cZnak = 'a';
   // widzimy, że znak jest zapisany jako liczba.
   printf("Znak %c = %d.\n", cZnak, cZnak);
   // prosta operacja:
   cZnak+= 4; // zwiększenie znaku o 4
   printf("Po zwiększeniu o 4, znak %c = %d.\n", cZnak, cZnak);
   // różnica dwóch znaków:
   char cZnak2 = 'o';
   printf("między znakami %c (%d) a %c (%d) jest %d różnicy.\n",
      cZnak, cZnak, cZnak2, cZnak2, abs(cZnak - cZnak2));
   // inne zastosowanie typu char (proste obliczenia arytmetyczne):
   for (unsigned char i=0; i<16; ++i)
   {
      printf("%d * %d + 2 = %d\n", i, i, i * i + 2);
   }
}

Wynik działania:

Znak a = 97.
Po zwiększeniu o 4, znak e = 101.
Między znakami e (101) a o (111) jest 10 różnicy.
0 * 0 + 2 = 2
1 * 1 + 2 = 3
2 * 2 + 2 = 6
3 * 3 + 2 = 11
4 * 4 + 2 = 18
(...)

[edytuj] Przykład w Fortranie

Przykład (zmienna buffer o długości 128 B):

 character*(128) buffer

 buffer = 'abc'
 l = len(buffer) 
 buffer = buffer(:l) + 'cdef '
 l = len(buffer)
 buffer = buffer(:3) // ' xyx ' // buffer(4:) // ' pqr   '
 print *, '#' // buffer(:len(buffer))// '#'

Wynik działania - na ekranie zobaczymy:

 #abc xyx cdef  pqr   #

Powyżej wykorzystano:

  • standardową funkcję len określającą pozycję od lewej ostatniego znaku różnego od NUL (chcąc odrzucić końcowe spacje należy użyć funkcji len_trim)
  • tworzenie wycinka zmiennej var typu character:
    • znaki nr m do n (włącznie): var(m:n)
    • od początku do nr n włącznie: var(:n)
    • od znaku nr m do końca: var(m:)
  • konkatenację łańcuchów: operator // lub +

Our "Network":

Project Gutenberg
https://gutenberg.classicistranieri.com

Encyclopaedia Britannica 1911
https://encyclopaediabritannica.classicistranieri.com

Librivox Audiobooks
https://librivox.classicistranieri.com

Linux Distributions
https://old.classicistranieri.com

Magnatune (MP3 Music)
https://magnatune.classicistranieri.com

Static Wikipedia (June 2008)
https://wikipedia.classicistranieri.com

Static Wikipedia (March 2008)
https://wikipedia2007.classicistranieri.com/mar2008/

Static Wikipedia (2007)
https://wikipedia2007.classicistranieri.com

Static Wikipedia (2006)
https://wikipedia2006.classicistranieri.com

Liber Liber
https://liberliber.classicistranieri.com

ZIM Files for Kiwix
https://zim.classicistranieri.com


Other Websites:

Bach - Goldberg Variations
https://www.goldbergvariations.org

Lazarillo de Tormes
https://www.lazarillodetormes.org

Madame Bovary
https://www.madamebovary.org

Il Fu Mattia Pascal
https://www.mattiapascal.it

The Voice in the Desert
https://www.thevoiceinthedesert.org

Confessione d'un amore fascista
https://www.amorefascista.it

Malinverno
https://www.malinverno.org

Debito formativo
https://www.debitoformativo.it

Adina Spire
https://www.adinaspire.com