na biblioteca string.h.Vamos conhecer as mais comuns e as facilidades que elas trazem.Obtendo uma string (gets)Ate agora usamos a funcao scanf para obter dados inseridos pelo usuario.Poderiamos continuar usando scanf para strings tambem, desta forma abaixo: char nome[21]; scanf("%s",&nome);Primeiro declaramos um vetor de caracteres chamado nome capaz de armazenar uma string de ate 20 caracteres. Depois usamos a funcao scanf para armazenar neste vetor os caracteres digitados pelo usuario. Observe o uso do especificador de tipo "%s", que se refere a string.Entretando o C possui uma funcao especializada para esta obtencao dos dados digitados pelo usuario: gets. Olhe o seu uso abaixo: char nome[21]; gets(nome);Bem menos digitacao, o que significa uma economia de dedos (rsrs).Ao contrario do que voce possa pensar, a funcao gets esta na biblioteca stdio.h e nao na string.h.Verificando o tamanho de uma string (strlen)Quando definimos um vetor nem sempre sabemos se ele sera totalmente preenchido. Na maioria dos casos, definimos um tamanho considerado razoavel, que pode ser muito maior que o tamanho que sera efetivamente usado. No exemplo acima utilizamos um vetor capaz de armazenar 20 caracteres. Se o usuario digitar um nome como ANA, por exemplo, que tem 3 caracteres nosso programa 'achara' que os 20 caracteres foram preenchidos. Poderiamos achar o tamanho efetivamente ocupado no nosso vetor fazendo um for e incrementando uma variavel contadora ate que o caracter \0 fosse encontrado.No entanto o C facilita a nossa vida com uma funcao propria para isto a strlen. Observe o seu uso abaixo: int tamanho; tamanho = strlen(nome);Ela retorna um inteiro com o numero de caracteres efetivamente ocupado no nosso vetor.Comparando strings (strcmp)Imagine que voce tenha que comparar 2 vetores. Seria necessario, avaliar cada item de um vetor e compara-lo com o respectivo item do outro vetor. Alem disso, os vetores podem ter tamanhos diferentes.No caso de strings, poderiamos verificar o tamanho de cada uma delas e, se fossem do mesmo tamanho, comparar os seus caracteres individualmente. Seria uma solucao.Mas nao precisamos fazer isto. Temos uma funcao que faz isso para nos: strcmp. Observe o seu uso: char outro_nome[21]; int result; result = strcmp(nome, outro_nome);Esta funcao devolve um valor inteiro que corresponde ao resultado da comparacao entre as duas strings da seguinte forma:- result sera menor que 0 (ou seja, um inteiro negativo) se nome for diferente e/ou menor que outro_nome;- result sera 0 se, e somente se, nome for igual a outro_nome (entenda por igual o mesmo numero de caracteres, e os mesmo caracteres (um 'A' e diferente de um 'a') na mesma posicao relativa (indice) em cada vetor;- result sera maior que 0 (ou seja, um inteiro positivo) se nome for diferente e/ou maior que outro_nome.Em sua forma mais comum, so e verificado o resultado diferente de ou igual a 0.Copiando uma string em outra (strcpy)Para copiar o conteudo de um vetor para outro vetor e necessario copiar item a item, e ainda verificar se o tamanho dos 2 vetores e compativel.Seria possivel copiar um vetor de 20 inteiros em um vetor de 10?No caso das strings, temos uma funcao para fazer esta copia: strcpy.