User Tools

Site Tools


it:informatica:linguaggio_c:stringhe_1
Return to Home page

Differences

This shows you the differences between two versions of the page.


it:informatica:linguaggio_c:stringhe_1 [2024/04/08 22:35] (current) – created - external edit 127.0.0.1
Line 1: Line 1:
 +====== Stringhe (Esempio 1) ======
 +**Concetti:**\\
 +Stringhe e funzioni per la loro manipolazione (libreria //string.h//)
  
 +**Testo:**\\
 +Si realizzi una programma che:
 +  * dichiari tre stringhe, ''str1'' e ''str2'' di dimensione N e ''str3'' la cui dimensione è ottenuta direttamente durante la sua inizializzazione.
 +  * stampi ''str3''
 +  * acquisisca una stringa in ''str1''
 +  * copi ''str1'' in ''str2''
 +  * stampi ''str2''
 +  * stampi la lunghezza di ''str2''
 +  * riduca la dimensione di ''str2'' scrivendo il carattere '\0' al posto del quarto carattere di ''str2''
 +  * stampi la nuova stringa ''str2'' così ottenuta
 +  * compari il contenuto di ''str1'' e ''str2'' stampando se sono uguali o diverse
 +
 +**Soluzione:**\\
 +<file C stringhe_1.c>
 +/*
 +  Esempio di utilizzo delle stringhe
 +*/
 +
 +#include <stdio.h>
 +#include <string.h>
 +
 +#define N 20
 +
 +int main(){
 +  char str1[N], str2[N], str3[]="abc";
 +
 +  printf("STR3 : %s\n", str3);
 +  
 +  /*scanf("%s", str1);*/ /* Legge una parola per volta */
 +  gets(str1); /* Legge l'intera riga */
 +  printf("STR1 : %s\n", str1);
 +
 +  strcpy(str2, str1); /* Copia il contenuto di str1 in str2 */
 +  printf("STR2 : %s\n", str2);
 +  printf("LEN  : %d\n", (int)strlen(str2)); /* strlen restituisce la lunghezza di una stringa */
 +
 +  str2[3] = '\0'; /* Mettendo il carattere di fine stringa '\0' nella posione 3 del vettore di caratteri dove è memorizzata la stringa si tronca la stringa alla posizione 2 (la stringa risultante sarà perciò formata da 3 caratteri) */
 +  printf("STR2b: %s\n", str2 );
 +
 +  if (strcmp(str1, str2)==0){ /* La funzione strcmp restituisce 0 se le stringe sono uguali, un valore diverso da 0 se sono diverse (<0 se str1 è minore di str2, >0 se str1 è maggiore di str2 */ 
 +    printf("str1 uguale a str2\n");
 +  }else{
 +    printf("str1 diversa da str2\n");
 +  }
 +
 +  return 0;
 +}
 +</file>

If you found any error, or if you want to partecipate to the editing of this wiki, please contact: admin [at] skenz.it

You can reuse, distribute or modify the content of this page, but you must cite in any document (or webpage) this url: https://www.skenz.it/it/informatica/linguaggio_c/stringhe_1?rev=1551188125&do=diff

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki
Privacy Policy