Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Char e String | Dados
Fundamentos de C
course content

Conteúdo do Curso

Fundamentos de C

Fundamentos de C

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

book
Char e String

Na conclusão da nossa última lição, mencionamos 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 único caractere. Assim, o texto "c<>definity" seria representado como:

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

Nota

Pense nisso: cada 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; é um caractere único, não imprimível, semelhante a \n. Na tabela ASCII, este caractere tem o código 0.

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

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

Nota

Lembre-se, até mesmo um espaço é um caractere e requer seu próprio espaço 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 consiste em caracteres. Sempre lembre-se de terminar uma string com o caractere \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 literal de caractere que representa o caractere com código ASCII 0 (NULL). O segundo é um literal de 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 String

Em C, quando você quer exibir strings (arrays de valores char), você usa o especificador %s. Este especificador orienta a função printf() sobre que tipo de informação ela deve esperar. Ao usar %s, informamos à função printf() que ela receberá 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 mergulhar em um exemplo ilustrativo:

c

main

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

Interessantemente, ao aproveitar o índice, acessamos o elemento inicial do array. Essencialmente, em sua essência, strings são apenas arrays do tipo char.

Graças às propriedades do array, 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
We're sorry to hear that something went wrong. What happened?
some-alt