Untitled
unknown
plain_text
2 years ago
3.8 kB
12
Indexable
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define max 100
void afisare_caractere(char *sir, int n) {
printf("Caracterele din sir sunt: ");
for (int i = 0; i < n; i++) {
printf("%c ", sir[i]);
}
printf("\n");
}
void afisare_alfabetica(char *sir, int n) {
char ssir[max];
strcpy(ssir, sir);
printf("Caracterele in ordine alfabetica sunt: %s\n", ssir);
for (int i = 0; i < n - 1; i++) {
for (int j = i + 1; j < n; j++) {
if (ssir[i] > ssir[j]) {
char temp = ssir[i];
ssir[i] = ssir[j];
ssir[j] = temp;
}
}
}
printf("%s\n", ssir);
}
void afisare_inversalfa(char *sir, int n) {
char ssir[max];
strcpy(ssir, sir);
printf("Caracterele in ordine invers alfabetica: %s\n", ssir);
for (int i = 0; i < n - 1; i++) {
for (int j = i + 1; j < n; j++) {
if (ssir[i] < ssir[j]) {
char temp = ssir[i];
ssir[i] = ssir[j];
ssir[j] = temp;
}
}
}
printf("%s\n", ssir);
}
void afisare_vocale(char *sir, int n) {
int c = 0;
for (int i = 0; i < n; i++) {
if (sir[i] == 'a' || sir[i] == 'e' || sir[i] == 'i' || sir[i] == 'o' || sir[i] == 'u') {
c++;
}
}
printf("Numarul de vocale in sir: %d\n", c);
}
void copiere_ascii(char *sir, int n) {
int ac[max];
for (int i = 0; i < n; i++) {
ac[i] = (int)sir[i];
printf("%c: %d\n", sir[i], ac[i]);
}
}
void calcul_asciibinar(char *sir, int n) {
int s = 0;
for (int i = 0; i < n; i++) {
s += (int)sir[i];
}
printf("Suma reprezentarilor ASCII: %d\n", s);
printf("Reprezentarea binara a sumei: ");
while (s > 0) {
int r = s % 2;
printf("%d", r);
s = s / 2;
}
printf("\n");
}
void cuvant_frecvent(char *sir, int n) {
int maxc = 0;
char cf = sir[0]; // Inițializare cu primul caracter
for (int i = 0; i < n - 1; i++) {
int c = 1;
for (int j = i + 1; j < n; j++) {
if (sir[i] == sir[j]) {
c++;
}
}
if (c > maxc) {
maxc = c;
cf = sir[i];
}
}
printf("Cel mai frecvent caracter din sir: %c\n", cf);
}
void constructie_cuvant(char *sir, int n) {
char w[max];
int wl = 0;
for (int i = 0; i < n; i += 2) {
w[wl++] = sir[i];
}
w[wl] = '\0';
printf("Cuvantul format: %s\n", w);
}
void stergere_ucaracter(char *sir, int *n) {
(*n)--;
sir[*n] = '\0';
printf("Sirul dupa stergerea ultimului caracter: %s\n", sir);
}
int main() {
char sir[max];
int n = 0;
sir[0] = 'e';
n = 1;
printf("Introduceti litere mici, litere mari sau'e'= sir incheiat: \n");
char lm;
while (1) {
scanf(" %c", &lm);
if (lm == 'e') {
break;
}
if (lm >= 'a' && lm <= 'z') {
sir[n++] = lm;
}
else {
printf("Pentru a opri introducerea, apasati 'e' sau litera 'E'.\n");
}
}
sir[n] = '\0';
int optiune;
do {
printf("1.Afisare caractere\n");
printf("2.Afisare in ordine alfabetica\n");
printf("3.Afisare in ordine invers alfabetica\n");
printf("4.Numara vocale\n");
printf("5.Reprezentare ASCII\n");
printf("6.Suma reprezentarilor ASCII si reprezentarea binara a acesteia\n");
printf("7.Cel mai frecvent caracter\n");
printf("8.Constructie cuvant din fiecare pozitie\n");
printf("9.Stergere ultimului caracter\n");
printf("0.Iesire\n");
printf("Introduceti optiunea: ");
scanf("%d", &optiune);
switch (optiune) {
case 1:
afisare_caractere(sir, n);
break;
case 2:
afisare_alfabetica(sir, n);
break;
case 3:
afisare_inversalfa(sir, n);
break;
case 4:
afisare_vocale(sir, n);
break;
case 5:
copiere_ascii(sir, n);
break;
case 6:
calcul_asciibinar(sir, n);
break;
case 7:
cuvant_frecvent(sir, n);
break;
case 8:
constructie_cuvant(sir, n);
break;
case 9:
stergere_ucaracter(sir, &n);
break;
case 0:
printf("Iesire\n");
break;
default:
printf("Optiune gresita.\n");
break;
}
} while (optiune != 0);
return 0;
}
Editor is loading...
Leave a Comment