Vamos Programar? – Introdução à Programação #20
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.
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>.
1 2 3 | "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:
1 | 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:
1 2 3 | 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.
1 2 3 4 5 6 7 8 9 10 | #include <stdio.h> #include <stdlib.h> 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.
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] |
Este artigo tem mais de um ano
O link para o nº 19 deste tutorial está a apontar para o nº18.
Corrigido 🙂
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.
Obrigado pela correção 🙂
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
——————
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! 🙂
Forma correcta :
char nome[8] = {‘P’, ‘p’, ‘l’, ‘w’, ‘a’, ‘r’, ‘e’, ”};
O post do site “comeu”o string terminator 😛
Pois! É isso: estava incorreto, não pelo motivo citado acima, mas pela falta do string terminator 🙂 Obrigado.