Linguagem C 02 String

download Linguagem C 02 String

If you can't read please download the document

Transcript of Linguagem C 02 String

  • 1. Linguagem C
      • Regis Pires Magalhes

String 2. String

  • Umastringem C umvetor de caracteresterminado com um caractere nulo.
  • O caracter nulo um caractere com valor inteiro igual a zero
  • O terminador nulo tambm pode ser representato em C por ' '.
  • O comprimento da string deve ser pelo menos 1 caractere maior que o que pretendemos armazenar, pois um caractere reservado ao terminador nulo.
  • A funogets()l uma string e insere o terminador nulo na string quando a teclaEnterfor pressionada.

3. String

  • Usamos um ndice para acessar o caractere desejado dentro da string.
    • str[1] = 'a';
  • Em C, o ndice inicia em zero.
  • char str[10] = "Joao";
    • A declarao acima inicializa a stringstrcom os caracteres'J' 'o' 'a' 'o'e'' .
  • O cdigo de controle%sna funoprintf() usado para exibir uma string.

4. String

  • Podemos ler uma string usandoscanf() .
    • No usamos o e comercial (&) para strings, pois o nome de um vetor j um endereo de memria do comeo do vetor.
      • scanf("%s", texto);
  • Infelizmentescanf()l somente at o primeiro espao, ou seja, l somente uma palavra.
  • Para contornar isso, usamos a funo getsque l at encontrar o caracter de fim de linha (enter).
    • gets(texto);

5. String #include main() { charnome[6]; printf ( "Digite um nome: " ); gets (nome); printf ( "Ola, %s " , nome); system( "pause" ); } 6. String

  • O problema de gets que ele pode provocar srios problemas de segurana, pois permite o armazenamento de caracteres alm da capacidade da string.
  • Uma soluo mais segura usar a funo fgets que limita o tamanho mximo a ser lido.
    • fgets(texto, 50, stdin);

7. String #include main() { charnome1[21], nome2[21]; printf ( "Digite um nome: " ); gets (nome1); printf ( "Digite um nome: " ); fgets (nome2,21,stdin); printf ( " Nomes: %s - %s" , nome1, nome2); } 8. String #include main(){ charnome[10] ="Joao" ; printf ( "String: %s " , nome); printf ( "Terceira letra: %c " , nome[2]); printf ( "Quarta letra: %c " , nome[3]); nome[2] ='h' ; nome[3] ='n' ; printf ( "Agora a terceira letra eh: %c " , nome[2]); printf ( "Agora a quarta letra eh: %c " , nome[3]); printf ( "String resultante: %s " , nome); system( "pause" ); } 9. String #include main(){ charnome[10]; printf ( "Digite um nome: " ); gets (nome); printf ( " String: %s " , nome); printf ( "Terceira letra: %c " , nome[2]); printf ( "Quarta letra: %c " , nome[3]); printf ( "o tamanho da string eh: %d " , strlen(nome)); printf ( "o ultimo caractere eh: %c " , nome[strlen(nome)-1]); nome[2] ='h' ; nome[3] ='n' ; printf ( "Agora a terceira letra eh: %c " , nome[2]); printf ( "Agora a quarta letra eh: %c " , nome[3]); printf ( "String resultante: %s " , nome); system( "pause" ); } 10. String funes

  • strlen(texto) Retorna o tamanho da string texto em nmero de caracteres.
  • strcpy(destino, fonte) Copia a string fonte para a string destino.
  • strcat(destino, fonte) Concatena a string fonte no fim da string destino.
  • strcmp(str1, str2) Compara duas cadeias e caracteres e retorna um valor
    • = 0 - se str1 e str2 forem iguais
    • < 0 - se str1 for menor que str2
    • > 0 - se str1 for maior que str2

11. String funes #include #include main() { charnome1[] ="Regis" ; printf ( "%s" ,nome1); charnome2[100]; strcpy(nome2,"Isaac" ); printf ( "%s" ,nome2); strcat(nome2, " Newton" ); printf ( "%s" ,nome2); strcpy(nome2, "Maria" ); printf ( "%s" ,nome2); } 12. Funes no padronizadas

  • H algumas funes muito teis para manipulao de Strings que no esto disponveis no C ANSI:
    • strupr
      • Converte para caixa alta
    • strlwr
      • Converte para caixa baixa
    • strrev
      • Retorna