Você está na página 1de 31

Programação II

Escola Superior de Tecnologia e Gestão de Bragança


Strings

ESTiG

(ESTiG) Programação II 1 / 10
Sumário

1 Introdução às Strings

2 Output de strings no terminal

(ESTiG) Programação II 2 / 10
Introdução às Strings

Sumário

1 Introdução às Strings

2 Output de strings no terminal

(ESTiG) Programação II 3 / 10
Introdução às Strings

Introdução às Strings

A palavra string denota uma sequência de coisas


Na programação em C → associado a sequência de caracteres
Na realidade, em C, não existe o tipo string:
Implementação com recurso a vetores de caracteres
Criamos uma string declarando um vector de char terminado com o
caractere '\0':
char str [] = { 'O ', 'l ', 'a ', '! ', '\0 '};
Obtemos assim um vetor unidimensional do tipo char de tamanho 5:
O l a ! \0

O caractere '\0' marca o nal da string


"Veremos mais à frente que a sua importância é vital. . .

(ESTiG) Programação II 4 / 10
Introdução às Strings

Introdução às Strings

A palavra string denota uma sequência de coisas


Na programação em C → associado a sequência de caracteres
Na realidade, em C, não existe o tipo string:
Implementação com recurso a vetores de caracteres
Criamos uma string declarando um vector de char terminado com o
caractere '\0':
char str [] = { 'O ', 'l ', 'a ', '! ', '\0 '};
Obtemos assim um vetor unidimensional do tipo char de tamanho 5:
O l a ! \0

O caractere '\0' marca o nal da string


"Veremos mais à frente que a sua importância é vital. . .

(ESTiG) Programação II 4 / 10
Introdução às Strings

Introdução às Strings

A palavra string denota uma sequência de coisas


Na programação em C → associado a sequência de caracteres
Na realidade, em C, não existe o tipo string:
Implementação com recurso a vetores de caracteres
Criamos uma string declarando um vector de char terminado com o
caractere '\0':
char str [] = { 'O ', 'l ', 'a ', '! ', '\0 '};
Obtemos assim um vetor unidimensional do tipo char de tamanho 5:
O l a ! \0

O caractere '\0' marca o nal da string


"Veremos mais à frente que a sua importância é vital. . .

(ESTiG) Programação II 4 / 10
Introdução às Strings

Introdução às Strings

A palavra string denota uma sequência de coisas


Na programação em C → associado a sequência de caracteres
Na realidade, em C, não existe o tipo string:
Implementação com recurso a vetores de caracteres
Criamos uma string declarando um vector de char terminado com o
caractere '\0':
char str [] = { 'O ', 'l ', 'a ', '! ', '\0 '};
Obtemos assim um vetor unidimensional do tipo char de tamanho 5:
O l a ! \0

O caractere '\0' marca o nal da string


"Veremos mais à frente que a sua importância é vital. . .

(ESTiG) Programação II 4 / 10
Introdução às Strings

Introdução às Strings

A palavra string denota uma sequência de coisas


Na programação em C → associado a sequência de caracteres
Na realidade, em C, não existe o tipo string:
Implementação com recurso a vetores de caracteres
Criamos uma string declarando um vector de char terminado com o
caractere '\0':
char str [] = { 'O ', 'l ', 'a ', '! ', '\0 '};
Obtemos assim um vetor unidimensional do tipo char de tamanho 5:
O l a ! \0

O caractere '\0' marca o nal da string


"Veremos mais à frente que a sua importância é vital. . .

(ESTiG) Programação II 4 / 10
Introdução às Strings

Introdução às Strings

A palavra string denota uma sequência de coisas


Na programação em C → associado a sequência de caracteres
Na realidade, em C, não existe o tipo string:
Implementação com recurso a vetores de caracteres
Criamos uma string declarando um vector de char terminado com o
caractere '\0':
char str [] = { 'O ', 'l ', 'a ', '! ', '\0 '};
Obtemos assim um vetor unidimensional do tipo char de tamanho 5:
O l a ! \0

O caractere '\0' marca o nal da string


"Veremos mais à frente que a sua importância é vital. . .

(ESTiG) Programação II 4 / 10
Introdução às Strings

Introdução às Strings - literais

A linguagem C facilita a declaração de strings pelo uso de literais


Literais do tipo string → lista de caracteres entre " (aspas):
"Ola, sou uma string!"
À semelhança dos outros literais (inteiros, oat, caracteres, . . . )
podemos usá-los para inicializar uma string:
char str [] = " Ola , sou uma string ! " ;

. . . equivalente a:
char str [] = {
'O ' ,'l ' ,'a ' ,' ,' ,' ','s ' ,'o ' ,'u ' ,' ', 'u ', 'm ', 'a ',
' ','s ' ,'t ' ,'r ' ,'i ' ,'n ' ,'g ' ,'! ' ,' \0 '
};
É importante não confundir:
"Ola!" - string de 5 bytes (\0 inclusive)
'Ola!'
::::::
- erro de sintaxe

(ESTiG) Programação II 5 / 10
Introdução às Strings

Introdução às Strings - literais

A linguagem C facilita a declaração de strings pelo uso de literais


Literais do tipo string → lista de caracteres entre " (aspas):
"Ola, sou uma string!"
À semelhança dos outros literais (inteiros, oat, caracteres, . . . )
podemos usá-los para inicializar uma string:
char str [] = " Ola , sou uma string ! " ;

. . . equivalente a:
char str [] = {
'O ' ,'l ' ,'a ' ,' ,' ,' ','s ' ,'o ' ,'u ' ,' ', 'u ', 'm ', 'a ',
' ','s ' ,'t ' ,'r ' ,'i ' ,'n ' ,'g ' ,'! ' ,' \0 '
};
É importante não confundir:
"Ola!" - string de 5 bytes (\0 inclusive)
'Ola!'
::::::
- erro de sintaxe

(ESTiG) Programação II 5 / 10
Introdução às Strings

Introdução às Strings - literais

A linguagem C facilita a declaração de strings pelo uso de literais


Literais do tipo string → lista de caracteres entre " (aspas):
"Ola, sou uma string!"
À semelhança dos outros literais (inteiros, oat, caracteres, . . . )
podemos usá-los para inicializar uma string:
char str [] = " Ola , sou uma string ! " ;

. . . equivalente a:
char str [] = {
'O ' ,'l ' ,'a ' ,' ,' ,' ','s ' ,'o ' ,'u ' ,' ', 'u ', 'm ', 'a ',
' ','s ' ,'t ' ,'r ' ,'i ' ,'n ' ,'g ' ,'! ' ,' \0 '
};
É importante não confundir:
"Ola!" - string de 5 bytes (\0 inclusive)
'Ola!'
::::::
- erro de sintaxe

(ESTiG) Programação II 5 / 10
Introdução às Strings

Introdução às Strings - literais

A linguagem C facilita a declaração de strings pelo uso de literais


Literais do tipo string → lista de caracteres entre " (aspas):
"Ola, sou uma string!"
À semelhança dos outros literais (inteiros, oat, caracteres, . . . )
podemos usá-los para inicializar uma string:
char str [] = " Ola , sou uma string ! " ;

. . . equivalente a:
char str [] = {
'O ' ,'l ' ,'a ' ,' ,' ,' ','s ' ,'o ' ,'u ' ,' ', 'u ', 'm ', 'a ',
' ','s ' ,'t ' ,'r ' ,'i ' ,'n ' ,'g ' ,'! ' ,' \0 '
};
É importante não confundir:
"Ola!" - string de 5 bytes (\0 inclusive)
'Ola!'
::::::
- erro de sintaxe

(ESTiG) Programação II 5 / 10
Introdução às Strings

Introdução às Strings - literais

A linguagem C facilita a declaração de strings pelo uso de literais


Literais do tipo string → lista de caracteres entre " (aspas):
"Ola, sou uma string!"
À semelhança dos outros literais (inteiros, oat, caracteres, . . . )
podemos usá-los para inicializar uma string:
char str [] = " Ola , sou uma string ! " ;

. . . equivalente a:
char str [] = {
'O ' ,'l ' ,'a ' ,' ,' ,' ','s ' ,'o ' ,'u ' ,' ', 'u ', 'm ', 'a ',
' ','s ' ,'t ' ,'r ' ,'i ' ,'n ' ,'g ' ,'! ' ,' \0 '
};
É importante não confundir:
"Ola!" - string de 5 bytes (\0 inclusive)
'Ola!'
::::::
- erro de sintaxe

(ESTiG) Programação II 5 / 10
Introdução às Strings

Introdução às Strings - literais

A linguagem C facilita a declaração de strings pelo uso de literais


Literais do tipo string → lista de caracteres entre " (aspas):
"Ola, sou uma string!"
À semelhança dos outros literais (inteiros, oat, caracteres, . . . )
podemos usá-los para inicializar uma string:
char str [] = " Ola , sou uma string ! " ;

. . . equivalente a:
char str [] = {
'O ' ,'l ' ,'a ' ,' ,' ,' ','s ' ,'o ' ,'u ' ,' ', 'u ', 'm ', 'a ',
' ','s ' ,'t ' ,'r ' ,'i ' ,'n ' ,'g ' ,'! ' ,' \0 '
};
É importante não confundir:
"Ola!" - string de 5 bytes (\0 inclusive)
'Ola!'
::::::
- erro de sintaxe

(ESTiG) Programação II 5 / 10
Introdução às Strings

Introdução às Strings - literais

A linguagem C facilita a declaração de strings pelo uso de literais


Literais do tipo string → lista de caracteres entre " (aspas):
"Ola, sou uma string!"
À semelhança dos outros literais (inteiros, oat, caracteres, . . . )
podemos usá-los para inicializar uma string:
char str [] = " Ola , sou uma string ! " ;

. . . equivalente a:
char str [] = {
'O ' ,'l ' ,'a ' ,' ,' ,' ','s ' ,'o ' ,'u ' ,' ', 'u ', 'm ', 'a ',
' ','s ' ,'t ' ,'r ' ,'i ' ,'n ' ,'g ' ,'! ' ,' \0 '
};
É importante não confundir:
"Ola!" - string de 5 bytes (\0 inclusive)
'Ola!'
::::::
- erro de sintaxe

(ESTiG) Programação II 5 / 10
Introdução às Strings

Introdução às Strings - declaração

A declaração em baixo reserva em memória os bytes estritamente


necessários para albergar a string:
char str [] = " Uma String ! " ;

U m a S t r i n g ! \0

No exemplo em baixo são reservados 20 bytes:


char str [20] = " Uma String ! " ;

U m a S t r i n g ! \0

Em termos práticos, a string acaba onde o \0 é colocado


De tal forma que o seguinte código não representa necessariamente
uma string:
char str [] = { 'O ' , 'l ' , 'a '} ; // falta o \0 no final

(ESTiG) Programação II 6 / 10
Introdução às Strings

Introdução às Strings - declaração

A declaração em baixo reserva em memória os bytes estritamente


necessários para albergar a string:
char str [] = " Uma String ! " ;

U m a S t r i n g ! \0

No exemplo em baixo são reservados 20 bytes:


char str [20] = " Uma String ! " ;

U m a S t r i n g ! \0

Em termos práticos, a string acaba onde o \0 é colocado


De tal forma que o seguinte código não representa necessariamente
uma string:
char str [] = { 'O ' , 'l ' , 'a '} ; // falta o \0 no final

(ESTiG) Programação II 6 / 10
Introdução às Strings

Introdução às Strings - declaração

A declaração em baixo reserva em memória os bytes estritamente


necessários para albergar a string:
char str [] = " Uma String ! " ;

U m a S t r i n g ! \0

No exemplo em baixo são reservados 20 bytes:


char str [20] = " Uma String ! " ;

U m a S t r i n g ! \0

Em termos práticos, a string acaba onde o \0 é colocado


De tal forma que o seguinte código não representa necessariamente
uma string:
char str [] = { 'O ' , 'l ' , 'a '} ; // falta o \0 no final

(ESTiG) Programação II 6 / 10
Introdução às Strings

Introdução às Strings - declaração

A declaração em baixo reserva em memória os bytes estritamente


necessários para albergar a string:
char str [] = " Uma String ! " ;

U m a S t r i n g ! \0

No exemplo em baixo são reservados 20 bytes:


char str [20] = " Uma String ! " ;

U m a S t r i n g ! \0

Em termos práticos, a string acaba onde o \0 é colocado


De tal forma que o seguinte código não representa necessariamente
uma string:
char str [] = { 'O ' , 'l ' , 'a '} ; // falta o \0 no final

(ESTiG) Programação II 6 / 10
Output de strings no terminal

Sumário

1 Introdução às Strings

2 Output de strings no terminal

(ESTiG) Programação II 7 / 10
Output de strings no terminal

Output de strings no terminal

Prática comum nos vetores → usar ciclo (while, for, ...) para
colocar no terminal
Uma forma simples de mostrar a string str poderia ser:
char str [] = " Ola , sou uma string ! " ;
int i = 0 ;
while ( str [ i ] ! = '\0 ')
putchar ( str [ i ++]) ;

Existem alternativas mais simples (equivalentes):


printf ( " % s " , str ) ; // usando o format - specifier % s
puts ( str ) ; // usando a funcao puts

A função printf permite, também, incluir a string noutro texto:


char nome [] = " John Doe " ;
int idade = 33 ;
printf ( " Nome : %s , Idade : % d " , nome , idade ) ;

Resultado: Nome: Jonh Doe, Idade: 33


(ESTiG) Programação II 8 / 10
Output de strings no terminal

Output de strings no terminal

Prática comum nos vetores → usar ciclo (while, for, ...) para
colocar no terminal
Uma forma simples de mostrar a string str poderia ser:
char str [] = " Ola , sou uma string ! " ;
int i = 0 ;
while ( str [ i ] ! = '\0 ')
putchar ( str [ i ++]) ;

Existem alternativas mais simples (equivalentes):


printf ( " % s " , str ) ; // usando o format - specifier % s
puts ( str ) ; // usando a funcao puts

A função printf permite, também, incluir a string noutro texto:


char nome [] = " John Doe " ;
int idade = 33 ;
printf ( " Nome : %s , Idade : % d " , nome , idade ) ;

Resultado: Nome: Jonh Doe, Idade: 33


(ESTiG) Programação II 8 / 10
Output de strings no terminal

Output de strings no terminal

Prática comum nos vetores → usar ciclo (while, for, ...) para
colocar no terminal
Uma forma simples de mostrar a string str poderia ser:
char str [] = " Ola , sou uma string ! " ;
int i = 0 ;
while ( str [ i ] ! = '\0 ')
putchar ( str [ i ++]) ;

Existem alternativas mais simples (equivalentes):


printf ( " % s " , str ) ; // usando o format - specifier % s
puts ( str ) ; // usando a funcao puts

A função printf permite, também, incluir a string noutro texto:


char nome [] = " John Doe " ;
int idade = 33 ;
printf ( " Nome : %s , Idade : % d " , nome , idade ) ;

Resultado: Nome: Jonh Doe, Idade: 33


(ESTiG) Programação II 8 / 10
Output de strings no terminal

Output de strings no terminal

Prática comum nos vetores → usar ciclo (while, for, ...) para
colocar no terminal
Uma forma simples de mostrar a string str poderia ser:
char str [] = " Ola , sou uma string ! " ;
int i = 0 ;
while ( str [ i ] ! = '\0 ')
putchar ( str [ i ++]) ;

Existem alternativas mais simples (equivalentes):


printf ( " % s " , str ) ; // usando o format - specifier % s
puts ( str ) ; // usando a funcao puts

A função printf permite, também, incluir a string noutro texto:


char nome [] = " John Doe " ;
int idade = 33 ;
printf ( " Nome : %s , Idade : % d " , nome , idade ) ;

Resultado: Nome: Jonh Doe, Idade: 33


(ESTiG) Programação II 8 / 10
Output de strings no terminal

Output de strings no terminal

À semelhança dos tipos básicos, as strings podem ser formatadas com


recurso à função printf :
char nome [] = " John Doe " ;
printf ( " [%20 s ] " , nome ) ; // tamanho : 20 [ direita ]

Resultado: [ Jonh Doe]


char nome [] = " John Doe " ;
printf ( " [% -20 s ] " , nome ) ; // tamanho : 20 [ esquerda ]

Resultado: [Jonh Doe ]


A função puts, recebe apenas 1 argumento - a string a colocar no
terminal:
char nome [] = " John Doe " ;
puts ( nome ) ; // ≡ printf ("% s \ n " , nome ) ;

" Repare no \n no nal!

(ESTiG) Programação II 9 / 10
Output de strings no terminal

Output de strings no terminal

À semelhança dos tipos básicos, as strings podem ser formatadas com


recurso à função printf :
char nome [] = " John Doe " ;
printf ( " [%20 s ] " , nome ) ; // tamanho : 20 [ direita ]

Resultado: [ Jonh Doe]


char nome [] = " John Doe " ;
printf ( " [% -20 s ] " , nome ) ; // tamanho : 20 [ esquerda ]

Resultado: [Jonh Doe ]


A função puts, recebe apenas 1 argumento - a string a colocar no
terminal:
char nome [] = " John Doe " ;
puts ( nome ) ; // ≡ printf ("% s \ n " , nome ) ;

" Repare no \n no nal!

(ESTiG) Programação II 9 / 10
Output de strings no terminal

Output de strings no terminal

À semelhança dos tipos básicos, as strings podem ser formatadas com


recurso à função printf :
char nome [] = " John Doe " ;
printf ( " [%20 s ] " , nome ) ; // tamanho : 20 [ direita ]

Resultado: [ Jonh Doe]


char nome [] = " John Doe " ;
printf ( " [% -20 s ] " , nome ) ; // tamanho : 20 [ esquerda ]

Resultado: [Jonh Doe ]


A função puts, recebe apenas 1 argumento - a string a colocar no
terminal:
char nome [] = " John Doe " ;
puts ( nome ) ; // ≡ printf ("% s \ n " , nome ) ;

" Repare no \n no nal!

(ESTiG) Programação II 9 / 10
Output de strings no terminal

Output de strings no terminal

Ambas as funções printf/puts determinam o nal da string através do


caractere '\0'
Enquanto não for encontrado '\0', vai continuar a imprimir o vetor
de char:
char nome [] = { 'J ', 'o ', 'h ', 'n ', ' ', 'D ','o ' ,'e '} ;
puts ( nome ) ;
Resultado (lixo no terminal):

Exemplos do uso de '\0':


printf ( " Ola \0 Mundo " ) ; // Imprime apenas : Ola

char nome [] = " John Doe " ;


nome [4] = ' \0 ';
puts ( nome ) ; // Imprime apenas : John
(ESTiG) Programação II 10 / 10
Output de strings no terminal

Output de strings no terminal

Ambas as funções printf/puts determinam o nal da string através do


caractere '\0'
Enquanto não for encontrado '\0', vai continuar a imprimir o vetor
de char:
char nome [] = { 'J ', 'o ', 'h ', 'n ', ' ', 'D ','o ' ,'e '} ;
puts ( nome ) ;
Resultado (lixo no terminal):

Exemplos do uso de '\0':


printf ( " Ola \0 Mundo " ) ; // Imprime apenas : Ola

char nome [] = " John Doe " ;


nome [4] = ' \0 ';
puts ( nome ) ; // Imprime apenas : John
(ESTiG) Programação II 10 / 10
Output de strings no terminal

Output de strings no terminal

Ambas as funções printf/puts determinam o nal da string através do


caractere '\0'
Enquanto não for encontrado '\0', vai continuar a imprimir o vetor
de char:
char nome [] = { 'J ', 'o ', 'h ', 'n ', ' ', 'D ','o ' ,'e '} ;
puts ( nome ) ;
Resultado (lixo no terminal):

Exemplos do uso de '\0':


printf ( " Ola \0 Mundo " ) ; // Imprime apenas : Ola

char nome [] = " John Doe " ;


nome [4] = ' \0 ';
puts ( nome ) ; // Imprime apenas : John
(ESTiG) Programação II 10 / 10

Você também pode gostar