Em
C,
strings
são
vetores
de
char.
PONTO.
SEM
MAIS.
É
um
vetor
de
char
com
um
caractere
de
final
de
string
(\0)
no
final.
A
gente
até
tem
funções
específicas
de
strings,
mas,
como
strings
são
vetores
de
char,
no
fundo
essas
funções
lidam
com
vetores
de
char.
A
gente
só
não
vê
isso.
Vamos
à
declaração:
char
string[]
=
“palavrinha”;
//prefiro
esse
jeito,
ele
já
fica
do
tamanho
do
que
eu
colocar
char
string[20]
=
“palavrinha”;
//declarando
o
tamanho
eu
posso
preencher
depois
char
*string
=
“palavrinha”;
//no
me
gusta
OBSERVAÇÃO
IMPORTANTE:
char string[] = “aeiou” é DIFERENTE de char string[] = {'a',
'e', 'i', 'o', 'u'}. O primeiro é uma string e contém o caractere
\0 para delimitar seu final, então tem 6 posições. O segundo é um
vetor de char comum, com 5 posições e nenhum \0.
Voltando.
Temos
funções
pra
facilitar
nossa
vida
na
hora
de
lidar
com
strings.
Vou
fazer
uma
tabelinha,
acho
mais
fácil.
Aí
chega.
A
tabela
(só
com
as
principais):
Função
|
Descrição
|
Uso
|
strlen
|
Devolve
o
tamanho
da
string
|
int
i
=
strlen(minha_string);
|
strcpy
|
Copia
a
string
de
origem
pra
de
destino
|
strcpy
(destino,
origem);
|
strcat
|
Acrescenta
a
string
de
origem
no
final
da
de
destino
|
strcat
(destino,
origem);
|
strcmp
|
Compara
duas
strings
e
retorna
um
número:
>0
caso
a
primeira
seja
maior
que
a
segunda
0
caso
sejam
iguais
<0
caso
a
segunda
seja
maior
Ex:
strcmp
(“menino”,
“menina”)
retorna
>0
pois
no
finalzinho,
'o'
é
alfabeticamente
maior
que
'a'.
|
i
=
strcmp
(primeira,
segunda);
i
=
stricmp
(primeira,
segunda);
|
stricmp
|
Igual
a
anterior,
só
que
ignora
maiúsculas
e
minúsculas
|
|
strchr
|
Procura
um
caractere
dentro
de
uma
string.
Retorna
o
índice
dele
ou
-1
se
não
existir.
|
i
=
strchr(string,
char);
|
strstr
|
Procura
uma
string
dentro
de
outra
string.
Retorna
o
índice
dela
ou
-1
se
não
existir.
|
i
=
strstr(procurar,
ser_procurada);
|
strlwr
|
Passa
toda
a
string
pra
minúsculas
|
sua_string
=
strlwr(sua_string);
|
strupr
|
Passa
toda
a
string
pra
maiúsculas
|
sua_string
=
strupr(sua_string);
|
toupper
|
Passa
um
caractere
pra
maiúscula
(precisa
da
biblioteca
ctype.h)
|
String[5]
=
toupper(string[5]);
|
tolower
|
Passa
um
caractere
pra
minúscula
(precisa
da
biblioteca
ctype.h)
|
String[5]
=
tolower(string[5]);
|
AH,
AH,
pra
imprimir
string
no
printf
usa
%s.
Pode
usar
puts(sua_string),
aí
ele
já
muda
de
linha,
mas
é
a
mesma
coisa
que
printf
com
%s.
Pra
ler,
o
scanf
com
%s
funciona,
mas
quando
ele
vê
um
espaço,
tab
ou
enter
ele
para
de
ler.
Portanto,
eu
acho
melhor
a
função
gets(variavel_de_destino),
que
pega
os
espaços.
Quem
passou
pelo
problema
da
leitura
dar
errado use
a
função
fflush(stdin)
depois
da
leitura
que
isso
não
acontece
mais. Essa função limpa o buffer de entrada.
Nenhum comentário:
Postar um comentário