Funções de manipulação de strings

Publicado por Fábio Arnoni em 30/01/2008

[ Hits: 13.284 ]

 


Funções de manipulação de strings



Usamos manipuladores de String quando desejamos trabalhar com palavras no C++. Abordaremos agora algumas funções, destacando sua utilidade, com pequenos exemplos no final de cada uma.

Função gets

Sintaxe: gets(string)

Esta função foi feita para substituir a "iostream cin" com o intuito de suprir a necessidade de se armazenar palavras que têm como caractere o espaço.

Exemplo:

#include <iostream.h>
#include <string.h>
#include <stdio.h>

void main()
{
char frase[101];
cout<<"Digite uma frase de no máximo 100 caracteres:\n";
gets(frase);
cout<<"\nA frase que você digitou é:\n\n";
cout<<frase;
}

Função strlen

Sintaxe: strlen(string)

A função strlen serve para contar quantos caracteres tem na palavra digitada.

Exemplo:

#include <iostream.h>
#include <stdio.h>
#include <string.h>


void main()
{

char frase[101];
int n;

   cout<<"Digite uma frase com no máximo 100 caracteres:\n\n";
   gets(frase);
   n = strlen(frase);
   cout << "\n\nEsta frase tem "<< n << " caracteres";

}

Função strcat

Sintaxe: strcat(string1,string2)

Esta função serve para concatenar (Juntar) strings. A função strcat pega o valor das strings e junta , sempre armazenando na primeira string.

Exemplo:

#include <iostream.h>
#include <stdio.h>
#include <string.h>

void main()
{
char nome[40];
char sobrenome[20];


   cout << "Digite seu 1º nome:\n";
   gets(nome);
   cout << "Digite seu sobrenome:\n";
   strcat(nome, " ");
   gets(sobrenome);
   strcat(nome,sobrenome);
   cout << "Seu nome completo é "<< nome;

}

Ps: Note que na primeira utilização da função strlen, concatenamos um espaço à variável nome para que o nome e sobrenome não saiam juntos na hora de imprimir no vídeo (cout).

Função strcpy

Sintaxe: strcpy(string1,string2)

Usamos a função strcpy quando queremos copiar o conteúdo de uma string para outra.

Exemplo:

#include <iostream.h>
#include <stdio.h>
#include <string.h>
#include <conio.h>

void main()
{
char frase1[100];
char frase2[100];
char frase3[100];

       cout<<"Digite que será armazenada na casa 1:\n";
       gets(frase1);
       cout<<"Digite uma frase que será armazenada na casa 2:\n";
       gets(frase2);
       cout<<"Digite uma frase que será armazenada na casa 3:\n";
       gets(frase3);
       clrscr();
       strcpy(frase1,frase2);
       cout <<"Casa 1: " << frase1;
       cout <<"\n\nCasa 2: "<< frase2;
       cout<<"\n\nCasa 3: "<<frase3;

}

Função strcmp

Sintaxe: strcmp(string1,string2)

Usamos a função strcmp quando desejamos comparar string com a outra.

Exemplo:

#include <iostream.h>
#include <stdio.h>
#include <string.h>


void main()
{
char senha[30] = {"fatec-scs"};
char palavra[30];



      cout << "Digite a senha:  "; gets(palavra);
      if (!strcmp(senha,palavra)) cout << "Pode passar você acertou!!";
      else cout << "Ahh que pena , você errou !!!";


}

PS: Observe a exclamação à frente da função, indica negação .Caso o strcmp devolva uma resposta negativa ao if, a etapa é pulada, seguindo com else.

Conclusão:

O uso de funções para manipular string podem resolver com praticidade o que levaria umas linhas de código a mais caso optássemos por outra solução.

Outras dicas deste autor

Instalando o Firefox no Debian Etch 4.0 com lançador

Leitura recomendada

Operador cast

Instalando o PostgreSQL no GNU/Linux

Famelix - Linux com cara de Windows XP

Instalação e uso do SUDO no Debian

Entrando no mundo Open Source

  

Comentários
[1] Comentário enviado por juliofsn em 30/01/2008 - 14:56h

"gets(string)

Esta função foi feita para substituir a 'iostream cin' com o intuito de suprir a necessidade de se armazenar palavras que têm como caractere o espaço."

Na verdade o "gets" já existia desde o C, e deve-se ter cuidado ao utilizá-la, pois se o usuário digitar uma palavra maior do que a string buffer que foi passada, ela sobreescreve o espaço de memória do programa.

[2] Comentário enviado por fabioarnoni em 30/01/2008 - 19:45h

Julio muito obrigado pela correção! Qualquer dica fiquem a vontade !!!



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts