Вы находитесь на странице: 1из 4

5/8/2014 STRING Linguagem C

http://www.linguagemc.xpg.com.br/strings.html 1/4
stdio.h
string.h
downloads
7 . String.
String uma seqncia de caracteres utilizada para o armazenamento de texto. Na linguagem C strings so vetores de caracteres que
possuem um caracter que indica o trmino de seu contedo, o caracter nulo \0 (contrabarra zero).
Declarao de strings
Como a string possui o caracter nulo para delimitar o final do seu contedo, o tamanho da string deve ser definido com um caracter a
mais do que ser efetivamente necessrio.
Sintaxe: char identificador-da-string [tamanho+1];
Exemplo.
char vetc [6];
vetc um vetor de caracteres (string) de tamanho 6. Pode receber uma palavra de no mximo 5
letras
Inicializao de strings
Uma string pode ser inicializada na sua declarao com uma sequncia de caracteres entre chaves e separadas por virgula.
char vetc[6]= {'T', 'e', 'x', 't', 'o', '\0'};
Lembre-se que o compilador s reconhecer um caractere se este estiver entre aspas simple, logo usar uma atribuio do tipo
{t,e,x,t,o,\0} ou {texto\0} ir gerar um erro de compilao.
Uma string pode tambm ser inicializada por uma seqncia de caracteres entre aspas duplas. Neste caso, no necessrio o uso de
aspas simples e virgulas, o compilador C coloca automaticamente o '\0' no final.
char vetc[6] = Texto;
Assim como vetores e matrizes, na inicializao de uma string o seu tamanho pode ser omitido.
O compilador vai verificar e considerar o tamanho declarado na inicializao.
char vetc[ ] = Texto; /* vetor no-dimensionado, o compilador coloca automaticamente
o \0 no final */
Manipulao de string
Assine 0800 703 3000 SAC
Bate-papo E-mail BOL Notcias Esporte Entretenimento Mulher Rdio TV UOL Shopping
5/8/2014 STRING Linguagem C
http://www.linguagemc.xpg.com.br/strings.html 2/4
topo
Funes de entrada e sada (<stdio.h>)
gets(s) - L uma string do dispositivo de entrada padro e armazena esta string em s. No uma funo segura, pois o
tamanho da string no especificado.
fgets(s, TAM, stdin) - L uma string de tamanho TAM do dispositivo de entrada padro e armazena esta string em s.
puts(s) - Imprime a string s no dispositivo de sada padro.
sscanf(s, "expresso-controle", end1, end2, ...) - Faz a leitura formatada em uma string s
sprintf(s, "expresso-controle", arg1, arg2, ...) - Faz a escrita formatada em uma string s
trecho de cdi go
char string[ ]= "2 20 200"; /* inicializa a string str */
sscanf(string, "%d %d %d", &i, &j, &k); /* armazena 2 em i, 20 em j e 200 em k */
Observe que foram usados exemplos numrico como valores, neste caso o compilador interpreta os numeros como sendo uma string.
Obcerve as notaes abaixo.
1 para o compilador poder ser um numero inteiro ou real.
'1' para o compilador o alfanumerico (caracter) char.
"11..." para o compilador uma string de conteudo 11...
logo deve-ser ter muita ateno ao uso de aspas para manipular strings.
trecho de cdi go
char string[10];
int i=2;
sprintf(string,"%d", i); /*armazena 2 em str */
Programa 17. mani pul ao de stri ng
#include <stdio.h>
#include <stdlib.h>
int main ()
{
char nome[] = "fulano";
char sobrenome[] = "de tal";
char nomeCompleto[] = nome + sobrenome;
int i=0;

while(nomeCompleto[i] != '\0'){
printf("%c",nomeCompleto[i]);
nomeCompleto[i++];
}

return(0);
system("pause");
}
ERRO DECOMPILAO
PORQUE O PROGRAMA ACIMA NO COMPILA?
Vamos entender o que o programa faz. Declara uma string contedo um nome, uma segunda string que inicializada com
o sobrenome, e uma terceira string que recebe a string nome concatenada a string sobrenome. Em seguido uma estrutura
de fluxo while controla impresso do contedo da string nomeCompleto
Um erro muito comum no uso de string em C esta sendo cometido na linha 7 do prog. 17. char nomeCompleto[] =
nome + sobrenome;. String no poder ser concatenadas utilizando o operador +. Existe uma diretiva em C que
implementa diversas funes de manipulao de valores em string.
topo
Funes de manipulao de strings <string.h>
Strings no podem ser comparadas com o operador de comparao padro (==), neste caso deve-se usar funo strcmp() ou a
5/8/2014 STRING Linguagem C
http://www.linguagemc.xpg.com.br/strings.html 3/4
funo stricmp().
strcmp(s1,s2) Retorna 0 se s1 e s2 so iguais; menor que 0 se s1<s2; maior que 0 se s1>s2 (comparao alfabtica).
stricmp(s1,s2) Retorna 0 se s1 e s2 so iguais; menor que 0 se s1<s2; maior que 0 se s1>s2 (comparao alfabtica). Essa
funo considera letras maisculas ou minsculas como smbolos iguais.
Strings no podem ser atribudas com o operador de atribuio (=), para uma atribuio usa-se a funo strcpy( ).
strcpy(s1,s2) Copia s2 em s1.
Strings no podem ser concatenadas com o operador (+), para tal usa-se a funo strcat().
strcat(s1,s2) Concatena s2 ao final de s1.
strlen(s) Retorna o nmero de caracteres em s (sem contar o caracter nulo (/0)).
strchr(s,c) Retorna um ponteiro na primeira ocorrncia do caracter c na string s.
strstr(s1,s2) - Retorna um ponteiro na primeira ocorrncia se s2 em s1.
strrev(s) Inverte a string s sobre ela mesma.
Programa 17. mani pul ao de stri ng
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main (){
char nome[] = "fulano";
char sobrenome[] = " de tal";
char nomeCompleto[15];

strcat(nome, sobrenome);
strcpy(nomeCompleto, nome);

puts(nomeCompleto);

return(0);
system("pause");
}
ful ano de tal
Programa 18. mani pul ao de stri ng
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void main(){

char f1[50], f2[50],f3[100],c;
int tam1, tam2, i,cont1,cont2;

printf("Digite uma frase: ");
gets(f1);

printf("Digite uma frase: ");
gets(f2);

tam1=strlen(f1);
tam2=strlen(f2);
c='a';
cont1=cont2=0;

for(i=0;i<=tam1;i++)
if(f1[i]==c) cont1++;

for(i=0; i<=tam2;i++)
if(f2[i]==c) cont2++;

5/8/2014 STRING Linguagem C
http://www.linguagemc.xpg.com.br/strings.html 4/4
printf("\nA letra %c aparece %d vez(es) na primeira e %d
vez(es) na segunda frase.\n", c, cont1, cont2);

if(!strcmp(f1,f2)) printf("\nAs frases sao iguais\n");
else{
strcat(f3,f1);
strcat(f3," ");
strcat(f3,f2);
printf("Nova frase: ");
puts(f3);
if(strchr(f3,'i')) printf("A letra 'i' aparece nesta frase\n\n");
if(strstr(f3,"string"))printf("A sequencia \"string\" tambem aparece nesta frase\n\n");
printf("Frase invertida: ");
strrev(f3);
puts(f3);
}
}
frase 1 = testando o uso
frase 2 = de stri ng.
sai da
Di gi te uma frase: testando o uso
Di gi te uma frase: de stri ng.
A l etra a aparece 1 vez(es) na pri mei ra e 0 vez(es) na segunda frase.
Nova frase: testando o uso de stri ng.
A l etra 'i ' aparece nesta frase
A sequenci a "stri ng" tambem aparece nesta frase
Frase i nverti da: .gni rts ed osu o odnatset
Bibliografia
HICKSON, Rosngela. Aprenda a programar em C, C++ e C#. Ed. Campus, 2002.
GOTTFRIED, B. S. Programando em C. Editora LTC, 1993.
KERNIGHAN, B. W., RITCHIE, D. M. C : A linguagem de programao Padro ANSI.
Ed. Campus, 1989.
EXERCCIOS PROPOSTOS
strings.pdf
<<anterior HOME prxima>>
topo

Вам также может понравиться