Codice dei programmi nella directory:

///File: stringhe.c
//Autore:3^B - Data ultima modifica 28/2/2026 //Breve descrizione del programma: funzioni sulle stringhe #include<stdio.h> /**** X==DA codificare 1) void copia(char s[],char t[]); // s=t 2) void concatena(char s[], char t[]); // s=s+t 3) int lunghezza(char s[]); // se s=="ciao" ritorna 4 4) void maiuscolo(char s[]); // mette in maiuscolo i caratteri minuscoli 5) void minuscolo(char s[]); // mette in minuscolo i caratteri maiuscoli 6) int confronta(char s[], char t[]); /// ritorna 0 se le due stringe sono uguali, < 0 se la prima e' minore, > 0 se la prima e' maggiore X 7) void squeeze(char s[]); /// toglie gli spazi da s[], se s=="ciao a tutti" diventa "ciaoatutti" X 8) void reverse(char s[]); /// se s=="roma" diventa "amor" X 9) int numero(char s[]); /// se s == "1234" ritorna 1234 X 10)int enumero(char s[]); /// ritorna vero se s e' un numero Piu' difficili: X 11) int doppie(char s[]); // verifica se in s[] ci sono, 2 elle, o 2 t, esempio "pollo" o "atto" // ritona vero o falso X 12) void PrimaLettera(char s[]); // se s[]="ciao a tutti" --> "Ciao A Tutti"; char ce(str[],t[]); // verifica se la stringa t[] e' contenuta in str[] s="albero", t="ero" ritorna 1, t="albe" ritorna 1, t = "b" ritorna 1, t="albo" ritorna 0 DIFFICILE X 13) void password(char pswd[], int maius, int minus, int cifre, int lung) Si ritorna una password in pswd della lunghezza lung. maius,minus,cifre sono 3 booleani (vero o falso) a seconda che la password contenga o meno maiuscole, minuscole o cifre Esempio pswd="Mabk9" se maius=1, minus=1, cifre=1, lung=5 pswd="XKBF" se maius=1, minus=0, cifre=0, lung=4 6 marzo 2026: Altre abbastanza facili: ________________________ A) mettere in una stringa l'alfabeto minuscolo B) int vocali(char s[]): ritorna il numero di vocali (minuscole) in una stringa C) int consonanti(char s[]): ritorna il numero di consonanti (minuscole) in una stringa D) void ebraico(char s[]): toglie le vocali (minuscole) da s[] E) void anagramma(char s[]): ritorna un anagramma di s[] F) void binario(char s[], int nbit): ritorna una stringa lunga nbit in binario ******/ #define MAX 256 // max lunghezza stringhe=255 Caratteri void scrivi(char s[]) { /// visualizza una stringa, come puts() int i; for (i = 0; s[i] != '\0'; i++) putchar(s[i]); } void copia(char s[], char t[]) { // come strcpy() int i = 0; while ((s[i] = t[i])) i++; /// copia t[i] in s[i] e poi s[i] diventa valore booleano, se '\0' == 0 e' falso } void concatena(char s[], char t[]) { /// come strcat() int i = 0, j = 0; while (s[i]) i++; /// si ferma quando s[i] == '\0' while (t[j]) s[i++] = t[j++]; /// copia t in s, partendo dalla fine di s (la posizione del '\0' di s) s[i] = '\0'; /// chiudo la stringa s } int lunghezza(char s[]) /// ritorna la lunghezza di una stringa come strlen() { int i; for(i=0; s[i]; i++) /// s[i] diventa false, quando i indica la posizione del '\0' ; return i; } int ce(char s[], char t[]){ /// verifica se la t[] e' contenuta nella s[] come strstr() int i, j = 0, cont = 0; for(i = 0; s[i]!='\0' && t[j] !='\0'; i++){ // ottimizzabile, posso togliere != '\0 if(s[i] == t[j]) cont++,j++; else j = 0,cont=0; } return cont == lunghezza(t); /// ritorna vero se sono uguali } int confronta(char s[], char t[]) /// ritorna 0 se le due stringe sono uguali, < 0 se la prima e' minore, > 0 se la prima e' maggiore // come strcmp() { int i=0; for(i=0; s[i] != '\0' && t[i] != '\0'; i++) { if(s[i] > t[i]) return 1; else if(s[i] < t[i]) return -1; } return 0; } int confronta2(char s[], char t[]) /// ritorna 0 se le due stringe sono uguali, < 0 se la prima e' minore, > 0 se la prima e' maggiore // come strcmp() { int i=0; for(i=0; s[i] != '\0' && t[i] != '\0' && s[i]==t[i]; i++) ; return s[i] - t[i]; } int vocali(char s[]) { // ritorna il numero di vocali in s[] int i; int conta_voc=0; for(i=0; s[i] !='\0'; i++) if(s[i]=='a' || s[i]=='e' || s[i]=='i' || s[i]=='o'|| s[i]=='u') conta_voc=conta_voc+1; return conta_voc; } void squeeze(char s[]) // toglie gli spazi dalla stringa s { int i; int j=0; // indice in cui copio for(i=0; s[i]!='\0'; i++) if(s[i]!=' ') { s[j]=s[i]; j++; } s[j]='\0'; // chiudo la stringa } int main() { char s1[MAX], s2[MAX], s3[MAX]; printf("Str1 che contiene->"); gets(s1); printf("Str2 contenuta ->"); gets(s2); printf("[%s] contenuta in [%s] == %d\n",s1,s2,ce(s1,s2)); printf("[%s] confrontata con [%s] == %d\n",s1,s2,confronta2(s1,s2)); copia(s3, s1); /// in s3 c'e' una copia di s1 printf("copia() di Str1 in s3=%s\n", s3); concatena(s3,s2); /// s3=s3+s2 printf("concatena(s3,s2) =%s\n", s3); printf("Vocali in %s = %d\n",s3,vocali(s3)); squeeze(s3); printf("Squeeze di s3=%s\n",s3); return 0; }
///(Fine file: stringhe.c)

///File: string.c
#include <stdio.h> #include <string.h> #define MAX 256 int main() { char s1[MAX]; char s2[MAX]; printf("Stringa 1->"); gets(s1); printf("Stringa 2->"); gets(s2); //strcpy(s1,s2); /// s1=s2 strcat(s1,s2); /// s1=s1+s2 printf("Stringa 1->%s\n",s1); printf("Strlen(s1)==%d\n", strlen(s1)); return 0; }
///(Fine file: string.c)

///File: stringhe.html
Qui avete una documentazione sulle funzioni di string
.h<br> Occorre conoscere e saper usare:<br> <h3><b>strcmp,strlen,strcpy,strcat,strstr,strchr</b></h3> <hr> <a href=https://www.w3schools.com/c/c_ref_string.php>Stringhe documentazione a w3scool</a>
///(Fine file: stringhe.html)