If you continue to use this site, you consent to our Privacy Policy.

21 maio 2018

Aula 2.14: Strings em C #LTCode

Este artigo faz parte do projeto #LTCode.

Hoje aprenderemos sobre strings que são basicamente um conjunto de caracteres armazenados em um vetor. Portanto é recomendado que tenha lido a aula 2.10 para que compreenda bem a aula de hoje.

A declaração segue o mesmo padrão de um vetor de caracteres: char nome[tamanho];

Portanto se queremos armazenar a palavra "Limon" dentro da string "nome", podemos fazer das seguintes formas a declaração:

char nome[] = "Limon Tec";

char nome[] = {'L','i','m','o','n',' ','T','e','c','\0'};

char nome[9];
nome[0]='L';
nome[1]='i';
nome[2]='m';
nome[3]='o';
nome[4]='n';
nome[5]=' ';
nome[6]='T';
nome[7]='e';
nome[8]='c';
nome[9]='\0';

Note que a ultima posição de um vetor de caracteres vai sempre receber o caracter '\0' que significa que ali acaba a string, no primeiro exemplo não é necessário colocar '\0' pois ele é inserido automaticamente pelo compilador já que está usando aspas duplas, portanto ao declarar o tamanho de uma string deve informar o tamanho de caracteres que você precisa mais um para o caractere \0.

Vale notar que 'A' é diferente de "A", o caractere declarado com aspas simples é UM caractere (ocupa 1 byte) e o com aspas duplas é uma STRING (no caso ocupa 2 bytes, já que inclui o caractere '\0' depois do 'A') - por isso uma string é também conhecida como vetor de caractere já que juntando estes caracteres do vetor pode-se formar uma string)

Suponha que você deseja imprimir a string nome que fizemos acima, é muito simples fazer isso utilizando a função printf. Exemplo: printf("%s",nome);

Mas como ler uma string, ou seja, pedir para o usuário digite uma string. Bom, você pode usar o scanf para a leitura de string, mas note que a variável que recebe a string não é precedida pelo &.

Forma certa: scanf("%s",nome);
Forma errada: scanf("%s",&nome);

Infelizmente temos um problema com o scanf pois ele vai ler somente uma palavra, ou seja, vai ler todos caracteres até encontrar um espaço, tab ou enter e inserir o caractere delimitador '\0'.

Portanto, caso deseja ler uma frase... melhor recorrer a outras funções, você pode usar a função gets ou fgets por exemplo.

Exemplos:
gets(nome);
fgets(nome,9,stdin); //(string,tamanho da string,stdin)

Importante ressaltar que a função fgets lê até encontrar um enter, e ele é inserido na string, no caso a string recebeu os caracteres: Limon Tec\n\0

A passagem de string para funções é exatamente igual a passagem de vetores para funções, releia a aula 2.8 caso necessite. 

Confira abaixo um exemplo de leitura e escrita de string e sua utilização em funções:


Bom, por hoje é isto. Na próxima aula apresentaremos as principais funções, já prontas para uso, com strings, elas nos ajuda a poupar tempo.

>> Próxima aula, clique aqui. 




~ Artigos recomendados para você:









Please Donate To Bitcoin Address: [[address]]





Donation of [[value]] BTC Received. Thank You.


[[error]]