Funções de manipulação de strings

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

[ Hits: 13.369 ]

 


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

Clonando máquinas na rede pelo UDP Cast (sem Live CD do mesmo)

Sites úteis para novatos

Fácil instalação da nVidia no SuSE 10.2

Instalando MySQL 8 no CentOS 7

Operador cast

  

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