Vetores.de.Caracteres 8 Por Pagina
-
Upload
oliver-robusto -
Category
Documents
-
view
213 -
download
0
Transcript of Vetores.de.Caracteres 8 Por Pagina
-
7/24/2019 Vetores.de.Caracteres 8 Por Pagina
1/3
Vetores de caracteres(Cadeias de caracteres ou string)
Uma cadeia de caracteres uma sequencia decaracteres (char) justapostos e so fundamentaisno desenvolvimento de programascomputacionais.
Exemplos de cadeias de caracteres(representadas internamente num programa): Mensagem de e-mail;
Texto de um programa;
Nome e endereo em cadastro de clientes, alunos,etc...
Sequencia gentica. Um gene (ou o DNA de algumorganismo) composto de sequencias dos caracteresA, T, G e C (nucleotdeos)
Cadeias de caracteres
Caracteres em C
Os caracteres em C so representados
internamente por cdigos numricos (ASCII);
}|{zyx120
wvutsrqpon110
mlkjihgfed100
cba`_^]\[Z90
YXWVUTSRQP80
ONMLKJIHGF70
EDCBA@?>=
-
7/24/2019 Vetores.de.Caracteres 8 Por Pagina
2/3
Cadeias de caracteres, em C, so representadas
por vetores do tipo char terminadas,obrigatoriamente, pelo caractere nulo: \0(\zero). Portanto, deve-se reservar uma posio
para este caractere de fim de cadeia.
Exemplos:
Equivale:
Cadeias de caracteres (strings)
char cidade[4] = {'R', 'i', 'o', \0'};char disc[40] = {'A','l','g', 'o', 'r', 'i', 't', 'm', 'o', '\0'};
char cidade[4] = "Rio";
char disc[40] = "Algoritmo";
Para ilustrar a declarao e a inicializao de
strings, consideremos as seguintes declaraes:
Cadeias de caracteres (strings)
char s1[] = "" ; //2 aspas sem espaos entre elas
char s2[] = "Rio de Janeiro";
char s3[81];
char s4[81] = "Rio";
s1 armazena uma string vazia. Tem um nico elemento:
\0; s2 representa um vetor com 15 elementos (caracteres);
s3 representa uma cadeia de caracteres com at 80caracteres e no inicializada;
s4 tambm dimensionada para conter at 80 caracterese inicializada com a cadeia Rio.
Leitura de cadeias de caracteres (scanf).
Cadeias de caracteres (strings)
int main()
{
char s[20];
printf("Digite uma string: ");
scanf("%s",s); //sem & antes de s
printf("String digitada: %s",s);
return 0;
}
Neste caso, a leitura ser feita at encontrar um caracterebranco: espao (' '), tabulao (\t') ou nova linha (\n').
Assim, se digitarmos Rio de Janeiro, s conter apenasRio;
No necessrio o & antes da varivel s em scanf.
Leitura/Impresso de cadeias de caracteres
(gets/puts).
Cadeias de caracteres (strings)
int main()
{
char s[20];
printf("Digite uma string: ");
gets(s);
printf("String digitada: ");
puts(s);
return 0;
}
Neste caso, se digitarmos Rio de Janeiro, s conter Riode Janeiro;
gets(s): l a string sa partir do teclado;
puts(s): imprime uma string na tela seguida de nova linha.
Exemplo: o programa a seguir imprime uma
cadeia de caracteres, caractere por caractere:
Cadeias de caracteres (strings)
int main()
{
char s[30];
int i;
printf("Digite uma string: ");
gets(s);
//imprime cada caractere da cadeia lida
for(i=0; s[i]!='\0'; i++)
printf("%c",s[i]);
return 0;
}
O for acima equivale a printf("%s",s);
Exemplo: o programa a seguir calcula e imprime o
comprimento (numero de caracteres) de umacadeia:
Cadeias de caracteres (strings)
int main()
{
char s[30];
int i, n = 0;
printf("Digite uma string: ");
gets(s);
for(i=0; s[i]!='\0'; i++)
n++;
printf("\nO tamanho de \"%s\" eh: %d",s,n);
return 0;
}
Exemplo: o programa a seguir faz uma copia de
uma cadeia, fornecida pelo usurio, para outra:
Cadeias de caracteres (strings)
int main()
{
char dest[50], //string destino
orig[50]; //string origem
int i;
printf("Digite uma string: ");
gets(orig);
//copia cada caractere de orig para dest
for(i=0; orig[i]!='\0'; i++)
dest[i] = orig[i];
//coloca o caractere nulo para marcar o fim da string
dest[i] = '\0';
puts(dest);
return 0;
}
Exerccios
Cadeias de caracteres (strings)
1)Fazer um programa contar o nmero de espaos embrancos de uma string.
2)Fazer um programa para contar o nmero de vogais numacadeia de caractere.
-
7/24/2019 Vetores.de.Caracteres 8 Por Pagina
3/3
Cadeias de caracteres (strings)
3)Escrever um programa para ler uma string (com mais deuma palavra) e faa com que a primeira letra de cadapalavra fique em maiscula. Para isso, basta subtrair 32 doelemento que deseja alterar para maisculo. chrNome[0]= chrNome[0] 32;
Exemplo:
Entrada: lab. de linguagem de programacao
Sada: Lab. De Linguagem De Programacao
4)Escreva um programa que leia uma string, conte quantoscaracteres desta string so iguais a 'a' e substitua os queforem iguais a 'a' por 'b'. O programa deve imprimir onmero de caracteres modificados e a string modificada.
Cadeias de caracteres (strings)
5)Receber o nome completo do usurio e armazen-lo emum vetor. Ento mostr-lo de forma soletrada, ou seja,cada letra deve ser exibida na tela separada por hfen.
6)Crie um programa que receba uma string de no mximo50 caracteres e inverta a ordem da string digitada;
Exemplo:
Entrada: TesteSada: etseT
7)Fazer um programa para determinar e imprimir uma stringque ser a concatenao de duas outras strings lidas.
Laboratrio de Programao(Vetores de caracteres)
Cadeias de caracteres (strings)
1)Fazer um programa para imprimir uma string lida sem osespaos em branco.
2)Escreva um programa que leia duas strings e as coloque natela. Imprima tambm a segunda letra de cada string
3)Fazer um programa para receber uma string do usurio(mx. 50 caracteres) e fazer uma estatstica dos caracteresdigitados. Isto , determinar o nmero de vogais,consoantes e outros caracteres.
4)Fazer um programa para ler uma string e transfira asconsoantes para um vetor e as vogais para outro. Depoismostre cada um dos vetores.
Cadeias de caracteres (strings)
5)Faa um programa que receba uma string do usurio(mx. 20 caracteres) e um caractere qualquer. Oprograma deve remover todas as ocorrncias do caractereda string e mostrar o resultado.
6)Escreva um programa em linguagem C para ler uma cadeiade caracteres de tamanho mximo 100, e retornar 1 seesta cadeia uma palndrome e zero caso contrrio. Umapalavra dita ser palndrome se a seqncia de seus
caracteres da esquerda para a direita igual a seqnciade seus caracteres da direita para a esquerda. Ex.: arara,asa.
Cadeias de caracteres (strings)
7)Um dos sistemas de encriptao mais antigos atribudo a
Jlio Csar: se uma letra a ser encriptada a letra denmero N do alfabeto, substitua-a com a letra (N+K), ondeK um nmero inteiro constante (Csar utilizava K = 3).Dessa forma, para K = 1 a mensagem Ataque aoamanhecer se torna bubrfabpabnboifdfs. Faa umprograma que receba como entrada uma mensagem e umvalor de K e retorne a mensagem criptografada pelocdigo de Csar.
Cadeias de caracteres (strings)
8)Escrever um programa que:
a. receba duas strings de entrada, bem como um valor inteirorepresentando uma posio.
b. insira a segunda string na primeira, na posio indicadapelo valor e exiba o resultado ao usurio.