School-Coding-Cpp/sfusi/es4F.cpp

46 lines
796 B
C++

/*
Nome: Mario
Cognome: Montanari
Classe: 3AIN
Data: 07/03/2025
es4F: Scrivere una funzione che, data in input una stringa,
restituisca il suo acronimo (prima lettera -maiuscola- di ogni parola)
Prototipo richiesto:
char * acronym(char * const str);
Esempio: "Organizzazione nazioni unite" -> "ONU"
*/
#include <iostream>
#include <cctype>
#define SIZE 100+1
using namespace std;
char * acronym(char * const str);
int main(void) {
char str[SIZE];
cin.getline(str, SIZE);
cout << acronym(str);
return 0;
}
char * acronym(char * const str) {
int j = 0;
for (int i = 0; str[i] != '\0'; i++) {
if (isalnum(str[i]) && (i == 0 || !isalnum(str[i - 1]))) {
str[j] = toupper(str[i]);
j++;
}
}
str[j] = '\0';
return str;
}