Vamos Programar? – Introdução à Programação #20

9 Comentários

Strings: declaração e inicialização

O mundo está constantemente a evoluir: desde o mais pequeno inseto à espécie Humana. Dentro das palavras que mais ouvimos atualmente, incluímos “evolução”, “mudança”, “futuro”.

A tecnologia tem revolucionado o mundo das mais diversas formas: do mais simples aparelho para medir o tempo ao mais complexo acelerador de partículas. Se quer entrar no mundo da tecnologia e deixar a sua marca, pode começar aqui.

Vamos Programar? – Introdução à Programação #20

Strings

Strings, como já mencionado anteriormente, são sequências de caracteres e, em C, são arrays de caracteres com um delimitador que indica o final da string, o delimitador \0. Daí termos abordado primeiro os arrays.

O \0 é ASCII para 0 e é utilizado para finalizar “strings>.

"Pplware" -> String
"P" -> String
'P' -> Caracter

Como mostrado acima, os caracteres, já abordados, são colocados dentro de plicas enquanto que todas as strings são colocadas dentro de aspas. Um único caracter inserido dentro de aspas é considerado uma string.

Sintaxe Em C podemos declarar strings de diversas formas. Podemos declarar um array do tipo char com um número de caracteres definidos:

char nome[8] = "Pplware";

Nesse string podemos colocar a palavra “Pplware” que tem 7 caracteres, mas qual é a razão que nos leva a colocar 8 quando declaramos a variável? Não se esqueça do caracter \0 que conta como 1 caracter.

Podemos ainda declarar e inicializar strings das seguintes formas:

char nome[8] = {'P', 'p', 'l', 'w', 'a', 'r', 'e', '\0'}; /* Forma mais trabalhosa */
char nome[] = "Pplware"; /* Não há necessidade de colocar o seu tamanho. */
char *nome = "Pplware";

Este “tipo” de dados pode, à semelhança de todos os outros, ser integrado com a função printf utilizando “%s”, uma abreviatura para string.

Exemplo No exemplo seguinte declaramos uma string que depois é imprimida recorrendo à função printf.

#include 
#include 

int main()
{
	char *nome = "Vamos Programar? - Introdução à Programação";

	printf("%s\n", nome);
	return 0;
}

Exercícios

1 – Crie uma variável que armazene o seu nome e, de seguida, o imprima.

2 – Peça o primeiro e último nomes do utilizador através da função scanf (scanf(“%s”, nome_da_var)) e depois imprima-o no seguinte formato: “Bem-vindo, Sr(a) NOME + ULTIMO_NOME”.


Mais uma vez, gostávamos de saber a sua opinião. Caso tenha alguma dúvida, pode sempre utilizar os comentários para colocar a questão. Caso o faça,  pedimos que utilize a keyword [DUVIDA] no início do seu comentários.


Resoluções de exercícios.

Esta saga

Henrique Dias

Mais episódios: 
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13][12] [14] [15] [16]
[17] [18] [19] [20] [21] [22] [23][24]

homefacebookgoogle-plus

Comentários

9

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de adiemlaonun
    adiemlaonun

    O link para o nº 19 deste tutorial está a apontar para o nº18.

  2. Avatar de Joaquim
    Joaquim

    Sugiro uma correcção em “No exemplo seguinte declaramos uma string que depois é imprimida recorrendo à função string.” A função será “printf” e não string.

    De resto estou a gostar de reavivar a memória em relação a pequenos pormenores de C que aprendi no meu primeiro ano de Universidade, há já 8 anos.

    1. Avatar de Henrique Dias

      Obrigado pela correção 🙂

  3. Avatar de Kabindas
    Kabindas

    A informação não está correcta.
    O array para conter a palavra “Pplware” pode ser declarado como char[7]. Sendo que um array é ZERO indexed a ultima posição da variavel (letra e) é acedida atraves do index 6. Então temos :

    ——————–
    0|1|2|3|4|5|6
    ——————
    P|p|l|w|a|r|e
    ——————

    1. Avatar de Henrique Dias

      Olá Kabindas!

      Infelizmente tenho que o informar de que a sua informação é que está incorreta.

      Efetivamente, quando falamos de arrays, temos que nos lembrar que estes são “zero indexed”, mas isso aplica-se às posições em que estão alocados os conteúdos.

      Quando declaramos um array, colocamos dentro de parêntesis retos, o tamanho do array, ou seja, o número de elementos que este vai conter.

      Então, a posição 0 conta! 🙂

  4. Avatar de Kabindas
    Kabindas

    Forma correcta :
    char nome[8] = {‘P’, ‘p’, ‘l’, ‘w’, ‘a’, ‘r’, ‘e’, ”};

    1. Avatar de Kabindas
      Kabindas

      O post do site “comeu”o string terminator 😛

      1. Avatar de Henrique Dias

        Pois! É isso: estava incorreto, não pelo motivo citado acima, mas pela falta do string terminator 🙂 Obrigado.