W języku programowania C, tablice (arrays) stanowią fundamentalny element, pozwalający na przechowywanie i manipulowanie zestawami danych. Oprócz tego, język C oferuje wiele przydatnych funkcji i zagadnień związanych z obsługą danych i znaków. W tym artykule przyjrzymy się zarówno tablicom, jak i różnym funkcjom oraz zagadnieniom związanym z językiem C.
Tablice (Arrays)
Tablice w języku C są kolekcją elementów tego samego typu, które są przechowywane w pamięci w jednym ciągłym bloku. Każdy element w tablicy ma swój indeks, który pozwala na dostęp do niego. Najczęściej używane typy tablic to tablice jednowymiarowe oraz wielowymiarowe.
Przykład tablicy jednowymiarowej:
#include <stdio.h>
int main() {
int liczby[5] = {1, 2, 3, 4, 5};
// Dostęp do elementów tablicy
printf("Pierwszy element: %d\n", liczby[0]); // Wyświetli: 1
printf("Ostatni element: %d\n", liczby[4]); // Wyświetli: 5
return 0;
}
Przykład tablicy wielowymiarowej:
#include <stdio.h>
int main() {
int macierz[2][3] = {{1, 2, 3}, {4, 5, 6}};
// Dostęp do elementów tablicy wielowymiarowej
printf("Element [0][1]: %d\n", macierz[0][1]); // Wyświetli: 2
printf("Element [1][2]: %d\n", macierz[1][2]); // Wyświetli: 6
return 0;
}
Tablica jednowymiarowa: Jest to kolekcja elementów tego samego typu, przechowywanych w jednym wymiarze. Można ją zdefiniować i zadeklarować za pomocą jednej pary nawiasów kwadratowych.
Tablica wielowymiarowa: Jest to kolekcja elementów tego samego typu, przechowywanych w więcej niż jednym wymiarze. Można ją zdefiniować i zadeklarować za pomocą większej liczby nawiasów kwadratowych, które określają liczbę wymiarów.
Przydatne funkcje i zagadnienia
AVG
Funkcja AVG
służy do obliczania średniej arytmetycznej z elementów tablicy liczb. Oto przykładowa implementacja:
float avg(int array[], int size) {
int sum = 0;
for (int i = 0; i < size; i++) {
sum += array[i];
}
return (float)sum / size;
}
strlen
Funkcja strlen
oblicza długość ciągu znaków. Oto przykładowe użycie:
#include <string.h>
int main() {
char napis[] = "Hello";
int dlugosc = strlen(napis);
printf("Długość napisu: %d\n", dlugosc); // Wyświetli: Długość napisu: 5
return 0;
}
Uppercase i toupper
Funkcje uppercase
i toupper
służą do zamiany liter na duże litery. Oto przykładowe użycie:
#include <ctype.h>
#include <stdio.h>
int main() {
char litera = 'a';
printf("Litera wielka: %c\n", toupper(litera)); // Wyświetli: Litera wielka: A
return 0;
}
islower
Funkcja islower
sprawdza, czy podany znak jest małą literą. Oto przykładowe użycie:
#include <ctype.h>
#include <stdio.h>
int main() {
char znak = 'a';
if (islower(znak)) {
printf("To jest mała litera.\n");
} else {
printf("To nie jest mała litera.\n");
}
return 0;
}
argc i argv
argc
i argv
są parametrami przekazywanymi do funkcji main()
, które służą do przekazywania argumentów z linii poleceń do programu.
- argc (argument count): Jest to liczba argumentów przekazanych do programu z linii poleceń, włączając nazwę programu. Zmienna
argc
zawsze musi być przynajmniej równa 1, ponieważ nazwa programu jest zawsze przekazywana jako pierwszy argument. - argv (argument vector): Jest to tablica ciągów znaków (typu
char *[]
), która zawiera wartości przekazane jako argumenty z linii poleceń. Elementargv[0]
zawiera nazwę programu, a pozostałe elementyargv[1]
doargv[argc-1]
zawierają kolejne argumenty przekazane do programu.
Przykładowo, jeśli uruchamiamy program z linii poleceń w następujący sposób:
./program argument1 argument2 argument3
To argc
będzie wynosić 4 (nazwa programu plus 3 dodatkowe argumenty), a argv
będzie zawierać:
argv[0]
– „./program”argv[1]
– „argument1”argv[2]
– „argument2”argv[3]
– „argument3”
Użycie argc
i argv
umożliwia programowi odbieranie danych wejściowych z linii poleceń, co jest często używane do przekazywania opcji konfiguracyjnych, plików do przetworzenia lub innych parametrów. Dzięki temu program może być bardziej elastyczny i dostosowywalny do różnych zastosowań bez konieczności modyfikowania kodu źródłowego.
#include <stdio.h>
int main(int argc, char *argv[]) {
printf("Liczba argumentów: %d\n", argc);
// Wyświetlenie wszystkich argumentów
for (int i = 0; i < argc; i++) {
printf("Argument %d: %s\n", i, argv[i]);
}
return 0;
}
Język ASCII
Język ASCII (American Standard Code for Information Interchange) to standardowy zestaw znaków używanych do reprezentowania tekstu w komputerach i urządzeniach komunikacyjnych w Ameryce Północnej. Każdy znak w języku ASCII jest reprezentowany przez odpowiadającą mu liczbę całkowitą od 0 do 127. W języku C, znaki ASCII są reprezentowane przez typ danych char
, a liczby te odpowiadają konkretnym znakom i symbolom używanym w tekstowych komunikatach.