Escolar Documentos
Profissional Documentos
Cultura Documentos
net
Pg. 1 de 4
Strings
Agora que j vimos vetores, o prximo passo entender as strings. Strings em C so tratados como vetores de tamanho determinado que podem armazenar qualquer caracter. Diferentemente de declarar apenas uma varivel do tipo char (que armazena apenas um caracter) a string uma cadeia de caracteres, ou seja, pode guardar quantos caracteres ns determinarmos. Portanto, para declararmos uma string, basta ns criarmos um vetor de caracteres dessa forma: char minhaString [50]; O nico problema das strings so o seu consumo de recursos. Por exemplo, se levarmos em conta o vetor de caracteres que acabamos de criar, apesar dele conter 50 posies, ns s poderemos digitar at 49 letras. Isso ocorre porque toda string deve ter um caracter terminal, que geralmente indicado pelo NULL (nulo). Isso quer dizer que um vetor de caracteres (string) de 50 posies ter 49 caracteres efetivos e um NULL indicando seu final.
Entrada de String
Para entrarmos com uma String no sistema usamos a mesma funo de entrada padro - cin. Ou seja, se quisermos que o usurio digite seu nome faramos da seguinte forma: #include <iostream> using namespace std; int main (void){ char minhaString [50]; cout << "Digite seu nome: "<<endl; cin >> minhaString; system("cls"); cout << "Seu nome e: " << minhaString << endl; system("pause"); return EXIT_SUCCESS; } Agora, outro problema ao tratarmos de strings em C/C++. Embora a funo cin consiga obter a string, ela sempre termina assim que pressionarmos o espao a primeira vez, ou seja, ele s consegue pegar uma palavra por vez. Ento, como vamos obter uma linha inteira? Bem, para obtermos uma linha inteira ns devemos fazer uso de um dos mtodos encontrados dentro de cin - o mtodo getline. O mtodo getline obtm uma linha de acordo com o tamanho definido no mtodo. Ento, o mtodo getline utiliza dois parmetros: 1. O nome da string; 2. O tamanho mximo que ser preenchido. Ento, usando o mesmo exemplo, apenas mudaramos a 6 linha. Vejamos: #include <iostream> using namespace std; int main (void){ char minhaString [50]; cout << "Digite seu nome: "<<endl; cin.getline (minhaString, 50); system ("cls"); cout << "Seu nome e: " << minhaString << endl; system("pause"); return EXIT_SUCCESS; } http://www.tiexpert.net/programacao/c/string.php
www.tiexpert.net
Pg. 2 de 4
Funes de String
Podemos fazer muitas coisas com Strings, como por exemplo, ver ser tamanho, juntar mais de uma palavra, comparar duas palavras diferentes, etc. Para isso, basta incluirmos uma biblioteca para tratamento de strings em C chamado - string.h.
www.tiexpert.net
#include <iostream> #include <cstring> using namespace std; int main (void){ char palavra1 [25], palavra2 [25]; cout << "Digite uma palavra: "<<endl; cin >> palavra1; strcpy (palavra2, palavra1); system ("cls"); cout<<"palavra1 = "<<palavra1<<endl; cout<<"palavra2 = "<<palavra2<<endl; system("pause"); return EXIT_SUCCESS; }
Pg. 3 de 4
www.tiexpert.net
system ("cls"); cout << "String-1"<<endl; cout << "-> "<<palavra1<<endl; cout << "tem "<<strlen(palavra1)<<" caracteres"<<endl<<endl; cout << "String-2"<<endl; cout << "-> "<<palavra2<<endl; cout << "tem "<<strlen(palavra2)<<" caracteres"<<endl<<endl; if (strcmp (palavra1, palavra2) == 0) cout << palavra1<<" e igual a "<<palavra2<<endl; else cout << palavra1<<" e diferente de "<<palavra2<<endl; strcpy (palavraConcatenada, palavra1); strcat (palavraConcatenada, palavra2); cout << "\nA concatenacao de "<<palavra1<<" com "<<palavra2; cout << " resulta em "<<palavraConcatenada<<endl; system("pause"); return EXIT_SUCCESS; }
Pg. 4 de 4
Autor: Denys William Xavier Este artigo est sob Licena Creative Commons Para ver uma cpia desta licena, visite http://creativecommons.org/licenses/by-nc-sa/2.5/br/ ou envie uma carta para Creative Commons, 171 Second Street, Suite 300, San Francisco, California 94105, USA.
http://www.tiexpert.net/programacao/c/string.php