Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Char e string | Dados
Noções Básicas de C
course content

Conteúdo do Curso

Noções Básicas de C

Noções Básicas de C

1. Introdução
2. Dados
3. Operadores
4. Instruções de controle
5. Funções
6. Ponteiros

bookChar e string

No encerramento da nossa última lição, insinuamos a ideia de usar arrays para manipular texto.

Em C, não há um tipo de dado específico projetado exclusivamente para strings (ou texto). Em vez disso, utilizamos um array do tipo char, onde cada elemento do array contém um caractere único. Assim, o texto "c<>definity" seria representado como:

Você deve ter percebido que o texto "c<>definity" contém apenas 11 caracteres, mas o array tem 12 elementos.

Nota

Pense nisso: toda palavra que você conhece é apenas uma combinação de letras.

O caractere \0

Este caractere, \0, sinaliza o fim de uma string em C. Não o confunda com o número zero; trata-se de um caractere único e não imprimível, semelhante a \n. No gráfico ASCII, este caractere tem o código 0.

Uma célula adicional do array é reservada para este caractere.

Sempre que estiver trabalhando com texto, certifique-se de que o array que contém o texto tenha um elemento a mais do que o comprimento real do texto.

Nota

Lembre-se, até mesmo um espaço é um caractere e ele necessita do seu próprio lugar no array. Por exemplo: char array[10] = { 'u','s','e',' ','s','p','a','c','e','\0' }.

Char vs. String

É crucial reconhecer que 'x' e "x" não são a mesma coisa.

Uma string se compõe de caracteres. Lembre-se sempre de finalizar uma string com \0.

  • 'x' é simplesmente uma constante de caractere do tipo char;
  • "x" é uma string, um array de valores char, ou, neste caso, {'x', '\0'}.

Nota

Certifique-se de não confundir '\0', '0', e "0". O primeiro é um caractere representando o caractere com código ASCII 0 (NULL). O segundo é um caractere para o dígito 0, com um código ASCII de 48. O terceiro é uma string consistindo de dois caracteres: o dígito 0 e o terminador de string, \0.

Saída de strings

Em C, quando você deseja exibir strings (arrays de valores char), você usa o especificador %s. Esse especificador orienta a função printf() sobre que tipo de informação ela deve esperar. Ao usar %s, informamos à função printf() que ela estará recebendo uma string.

c

main

copy
12345678910
#include <stdio.h> int main() { char array[] = { 'c','<','>','d','e','f','i','n','i','t','y','\0' }; printf("%s\n", array); // use %s format specifiers return 0; }

A linguagem C inclui uma biblioteca padrão para manipulação de strings, <string.h>.

Dentro desta biblioteca, há uma função que conta o número de caracteres em uma string:

c

main

copy
123456789101112
#include <stdio.h> #include <string.h> int main() { char array[] = { 'c','<','>','d','e','f','i','n','i','t','y','\0' }; printf("%d\n", strlen(array)); return 0; }

Vamos observar um exemplo ilustrativo:

c

main

copy
12345678910
#include <stdio.h> int main() { char str[] = "c<>definity"; printf("%c\n", str[0] ); return 0; }

Curiosamente, ao utilizar o índice, acessamos o elemento inicial do array. Essencialmente, no seu núcleo, as strings são apenas arrays do tipo char.

Graças às propriedades dos arrays, você pode alterar elementos específicos da string usando índices:

c

Main

copy
123456789101112
#include <stdio.h> int main() { char str[] = "c<>definity"; str[5] = '#'; // change the sixth character `f` to `#` printf("%s\n", str); return 0; }
Onde está a string?

Onde está a string?

Selecione a resposta correta

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 6
some-alt