printf i scanf za pomocą %cPrzykład:
#include<stdio.h> int main() { char znak = 'A'; printf("%c %d\n", znak, znak); printf("%c %d\n", znak+1, znak+1); printf("%c %d\n", 42, 42); }
getchar() zwraca pojedynczy znak ze standardowego wejścia lub wartość EOF gdy napotka koniec strumienia (end of file)EOF uzyskujemy wciskając Ctrl+d (Unix/Linux) lub Ctrl+z (MS Windows) putchar(int a) wypisuje pojedynczy znak na standardowym wyjściuPrzykład:
#include <stdio.h> int main() { char a; while((a=getchar()) != EOF) putchar(a); return 0; }
Napisz program, który po wczytaniu tekstu ze standardowego wejścia wyświetli ilość znaków oraz linii w podanym tekście.
Przykładowo, dla wprowadzonego teksu:
Ala ma kota, a kot ma Alę i żyć bez siebie nie mogą wcale,
program wypisze
znakow 63 linii 2
Napisz program, który zamienia wszystkie małe znaki alfabetu na duże litery, zaś duże - na małe. Wszystkie znaki interpunkcyjne i pozostałe symbole pozostają niezmienione.
Przykład:
AlA mA_kota !231 aLa Ma_KOTA !231
)
* dowolny ciąg znaków w cudzysłowach jest stałym napisem, np.: ''„Ala ma kota”printf() za pomocą modyfikatora %sPrzykład:
#include <stdio.h> int main() { char *napis = "Ala ma kota\n"; while(*napis != '\0') { printf(napis); napis++; } return 0; }
Zaimplementuj funkcję o nazwie readline, która odczytuje pojedynczy wiersz tekstu ze standardowego wiersza i umieszcza go w tablicy znakowej w postaci napisu.
Funkcja ta realizuje bezpieczną wersję funkcji gets(), zabezpieczając procedurę wczytywania tekstu przed możliwością przepełnienia tablicy.
Funkcja nie wczyta więcej niż n znaków oraz przerywa wczytywanie po napotkaniu końca pliku EOF.
Do wczytywania kolejnych znaków ze standardowego wejścia użyj funkcji getchar().
Ostatni znak linii (znak nowego wiersza - '\n') nie powinien występować w utworzonym napisie.
Argumenty funkcji: tablica znakowa t oraz liczba całkowita n określająca maksymalną liczbę znaków jaka może zostać wczytana do tablicy t
Wartość zwracana: funkcja zwraca wartość EOF (-1), gdy w czasie czytania znaków napotkano koniec pliku, w przeciwnym wypadku wartość zwracaną jest liczba 1
Napisz program, który używając funkcji readline, czyta kolejno wszystkie linie tekstu ze standardowego wejścia. Każdorazowo po wczytaniu kolejnej linii tekstu jest ona wyświetlana na standardowym wyjściu (na ekranie).
Zaimplementuj funkcję szyfr(), która zaszyfruje tekst umieszczony w napisie za pomocą szyfru Cezara. Szyfr ten zamienia znaki alfabetu na znaki stojące o 3 pozycje dalej w alfabecie, tzn. a zamieniane jest na d, litera b na e, itd. Litera z zamieniana jest na a, y na b, z na c. Zamianie ulegają wyłącznie znaki alfabetu (małe a-z i duże A-Z).
Argumenty funkcji: tablica znakowa t zawierająca napis do zaszyfrowania
Wartość zwracana: adres tablicy 't' zawierającej zaszyfrowany tekst
Napisz program, który przeczyta linię tekstu (wykorzystaj do tego funkcję readline() z poprzedniego zadania) a następnie wypisze jego zaszyfrowaną postać.
Przykład:
Ala ma kota Dkd pd nsxd
Dla chętnych
szyfr() o możliwość zamiany znaków w tekście na znaki przesunięte o dowolną liczbę całkowitą w alfabecie. Liczba ta podana jest w dodatkowym argumencie funkcji. Znaki w alfabecie zamieniane są cyklicznie. Podanie wartości ujemnej odpowiada przesunięci znaków w przeciwną stronę w alfabecie i w efekcie deszyfrację wiadomości zakodowanej wartością dodatnią. Wybrane funkcje z biblioteki string.h
int strlen(char *napis)
char* strcpy(char *src, char* dest)
int strcmp(char *napis1, char* napis2)
char* strcat(char *src, char* dest)
char* strstr(char *napis, char* wzor)
Wybrane funkcje w biblioteki ctype.h
Napisz funkcję o nazwie cenzura(), która wyszukuje w podanym napisie pewnego wyrażenia i jeżeli wyrażenie występuje w tekście to znaki tego wyrażenia zostają zamienione na *, tj. słowo zostaje ocenzurowane.
Argumenty funkcji: dwa napisy, pierwszy zawiera tekst do ocenzurowania a drugi to wyraz, który będzie cenzurowany.
Wartość zwracana: adres tablicy zawierającej ocenzurowany napis
Napisz program, który wypisuje na ekranie kolejne linie tekstu podane przez użytkownika. Jeżeli tekst w danej linii zawiera wyraz abakus, wtorek lub czerwony to tekst zostaje ocenzurowany a na ekranie pojawia się linia w której znaki niepożądanego słowa zostają zastąpione znakiem *.
Przykład:
We wtorek Adam kupil czerwony abakus. We ****** Adam kupil ******** ******.