Vetores.de.Caracteres 8 Por Pagina

Embed Size (px)

Citation preview

  • 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.