Advertisement
vitormartinotti

Aula Strings

May 17th, 2024
169
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.00 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main() {
  5.  
  6.     /*
  7.     Uma string pode ser representa através
  8.     de um vetor de char.
  9.     */
  10.     char s1[100];
  11.  
  12.     /*
  13.     Para ler uma string da entrada utilizamos
  14.     o %s, esta instrução faz a leitura até encontrar
  15.     um espaço em branco ou uma quebra de linha.
  16.     Automaticamente será incluido um \0 logo após o
  17.     último caractere, o que indica o fim da string.
  18.     Não é necessário utilizar o & pois o nome do vetor
  19.     já é uma referência para a sua localização na
  20.     memória.
  21.     */
  22.     printf("Escreva s1:\n");
  23.     scanf(" %s", s1);
  24.  
  25.     /*
  26.     Para imprimir uma string também utilizamos %s.
  27.     Esta instrução imprime as posições do vetor
  28.     até encontrar o \0.
  29.     */
  30.     printf("%s\n", s1);
  31.  
  32.     /*
  33.     Imprimindo as letras de uma string:
  34.     */
  35.     printf("s1[0]: %c\n", s1[0]);
  36.     printf("s1[1]: %c\n", s1[1]);
  37.     printf("s1[3]: %c\n", s1[3]);
  38.     printf("s1[5]: %c\n", s1[5]);
  39.     printf("\n");
  40.  
  41.     /*
  42.     Também é possível ler uma linha completa da entrada,
  43.     o scanf a seguir lê a entrada até encontrar uma
  44.     quebra de linha:
  45.     */
  46.     printf("Escreva uma frase:\n");
  47.     char frase[100];
  48.     scanf(" %[^\n]", frase);
  49.  
  50.     printf("%s\n", frase);
  51.     printf("\n");
  52.  
  53.     /*
  54.     Exemplo 1. Contando a quantidade de vogais em uma string:
  55.     */
  56.     printf("Escreva s2:\n");
  57.     char s2[100]; scanf(" %s", s2);
  58.  
  59.     int vogais = 0;
  60.     for (int i = 0; s2[i] != '\0'; i++){
  61.         if(s2[i] == 'a' || s2[i] == 'e'|| s2[i] == 'i'|| s2[i] == 'o'|| s2[i] == 'u'){
  62.             vogais++;
  63.         }
  64.     }
  65.  
  66.     printf("Qtd de vogais de s2: %d\n", vogais);
  67.     printf("\n");
  68.  
  69.     /*
  70.     ***Funções para Strings***
  71.     */
  72.  
  73.     /*
  74.     strcmp(s1, s2);
  75.     Esta função compara duas strings e retorna:
  76.     -1, se s1 vem antes de s2
  77.     0, se s1 é igual a s2
  78.     1, se s1 vem depois de s2
  79.     */
  80.  
  81.     char s3[] = "Escola";
  82.     char s4[] = "Estojo";
  83.  
  84.     if(strcmp(s3, s4) == 0) printf("Sao iguais\n");
  85.     else printf("Sao diferentes\n");
  86.     printf("\n");
  87.  
  88.     /*
  89.     strcpy(s1, s2);
  90.     Faz uma cópia de s2 em s1. Em outras palavras,
  91.     é o equivalente a s1 = s2; (s1 recebe s2).
  92.     Esta função só é "segura" se os vetores forem do mesmo
  93.     tamanho.
  94.     */
  95.  
  96.     printf("s3: %s\n", s3);
  97.     printf("s4: %s\n", s4);
  98.     printf("\n");
  99.  
  100.     char aux[100];
  101.  
  102.     strcpy(aux, s3); //aux = s3;
  103.     strcpy(s3, s4);  //s3 = s4;
  104.     strcpy(s4, aux); //s4 = aux;
  105.  
  106.     printf("s3: %s\n", s3);
  107.     printf("s4: %s\n", s4);
  108.     printf("\n");
  109.  
  110.     /*
  111.     strlen(s1);
  112.     Esta função retorna a quantidade de caracteres
  113.     de uma string.
  114.     Na prática, ela conta quantas casas existem até o \0.
  115.     */
  116.  
  117.     printf("Tamanho das strings:\n");
  118.     printf("s1: %d\n", strlen(s1));
  119.     printf("s2: %d\n", strlen(s2));
  120.     printf("s3: %d\n", strlen(s3));
  121.     printf("s4: %d\n", strlen(s4));
  122.     printf("frase: %d\n", strlen(frase));
  123.     printf("\n");
  124.  
  125.     return 0;
  126. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement