A maior rede de estudos do Brasil

Grátis
120 pág.
ApostilaANSI-C

Pré-visualização | Página 4 de 27

do C como sendo '\0'. 
Atenção:Atenção:Atenção:Atenção: 
 
� O algarismo zero em código ASCII é igual a 30H. 
 A declaração de uma string possui o seguinte formato geral: 
 
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS 
Departamento de Ensino do 2o grau - Coordenação de Eletrônica 
Disciplina: Laboratório de Introdução a Programação 
Professora: Rosângela Fátima da Silva 
 
 
17 
char nome_da_string[tamanho]; 
Nessa declaração temos um vetor de caracteres (uma string) com número de 
posições igual a tamanho. O tamanho do vetor é no mínimo um caractere maior 
que a maior string que pretendemos armazenar, uma vez que temos que incluir o 
caractere terminador. Imagine uma string de 7 posições onde foi armazenada 
CEFET: 
C E F E T \0 ... 
No caso acima, a células não usada têm valor indeterminado. Isto acontece 
porque o C não inicializa variáveis, cabendo ao programador esta tarefa. Portanto 
as únicas células inicializadas são as que contêm os caracteres 'C', 'E', 'F', 'E', 'T' e 
'\0' . 
Se quisermos ler uma string fornecida pelo usuário através do teclado, podemos 
usar a função gets(). Um exemplo do uso desta função é apresentado abaixo. A 
função gets() coloca o terminador nulo na string, quando você aperta a tecla 
"Enter". A função gets() está definida no arquivo de cabeçalho stdio.h. 
#include <stdio.h> 
#include <stdlib.h> 
 
/***************************************************************************** 
Programa 05 
Este programa usa a função gets() para ler uma string introduzida 
pelo teclado.Esta função requer o arquivo de cabeçalho stdio.h. 
 
******************************************************************************/ 
int main () 
{ 
 char string[50]; 
 printf ("Digite uma string:\n\n"); 
 gets (string); 
 printf ("\n\nVoce digitou a seguinte string: %s",string); 
 printf ("\n\n"); 
 system("pause"); 
 return(0); 
} 
Neste programa, o tamanho máximo da string que você pode digitar é uma string 
de 49 caracteres. Se você introduzir uma string de comprimento maior, o 
programa irá aceitar, mas os resultados podem ser desastrosos. Veremos porque 
posteriormente. 
Como as strings são vetores de caracteres, para se acessar um determinado 
caractere de uma string, basta "indexa-lo", ou seja, usarmos um índice para 
 
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS 
Departamento de Ensino do 2o grau - Coordenação de Eletrônica 
Disciplina: Laboratório de Introdução a Programação 
Professora: Rosângela Fátima da Silva 
 
 
18 
acessarmos o caractere desejado dentro da string. Suponha uma string chamada 
frase. Podemos acessar a segunda letra da string da seguinte forma: 
frase[1] = 'k'; 
É interessante observar que na linguagem C, o índice começa em zero. Assim, a 
primeira letra da string sempre estará na posição 0. A segunda letra sempre estará 
na posição 1 e assim sucessivamente. No exemplo a seguir o programa imprimirá 
a segunda letra da string "CEFET". Em seguida, mudará a letra mencionada e 
apresentará a string modificada no final. 
#include <stdio.h> 
#include <stdlib.h> 
 
/***************************************************************************** 
 Programa 06 
Este programa imprime: a string CEFET; 
* A segunda letra da string CEFET: E; 
* O novo caractere que substitui a segunda letra: A; 
* A string modificada: CAFET. 
 
******************************************************************************/ 
int main() 
{ 
 char frase[10] = "CEFET"; 
 printf("String: %s", frase); 
 printf("\n\nSegunda letra: %c", frase[1]); 
 frase[1] = 'A'; 
 printf("\n\nA segunda letra foi mudada para: %c", frase[1]); 
 printf("\n\nString resultante: %s", frase); 
 printf("\n\n"); 
 system("pause"); 
 return(0); 
} 
Observe que na string CEFET, o terminador nulo está na posição 5 e nas posições 
de 0 a 4 estão os caracteres válidos. Portanto podemos escrevê-los. Note a forma 
como inicializamos a string frase com os caracteres 'C' 'E' 'F' 'E' 'T' e '\0' 
simplesmente declarando char frase[10] = "CEFET". Veremos, posteriormente que 
" CEFET " (uma cadeia de caracteres entre aspas) é o que chamamos de string 
constante, isto é, uma cadeia de caracteres que está pré-carregada com valores 
que não podem ser modificados. Já a string frase é uma string variável, pois 
podemos modificar o que está armazenado nela. Como de fato acabamos de 
fazer. 
 
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS 
Departamento de Ensino do 2o grau - Coordenação de Eletrônica 
Disciplina: Laboratório de Introdução a Programação 
Professora: Rosângela Fátima da Silva 
 
 
19 
 
No programa anterior, %s indica que printf() deve colocar uma string na tela. 
Vamos agora fazer uma abordagem inicial às duas funções que já temos usado 
para fazer a entrada e saída de dados. 
Printf() 
A função printf() tem a seguinte forma geral: 
printf(<string_de_controle>, <Argumento_1>, <Argumento_2> ...<Argumento_N>); 
A função printf() pode ter um ou mais parâmetros, separados por vírgulas. O 
primeiro parâmetro é a string de controle, escrita entre aspas, e corresponde à 
seqüência de caracteres que será exibida pelo programa. Essa seqüência de 
caracteres pode conter alguns especificadores de formato que começam com a 
seguinte notação: %. Estes especificadores de formato indicam em quais posições 
da string de controle estão as variáveis a serem apresentadas e o tipo das 
mesmas. O segundo parâmetro é a lista de argumentos. É muito importante que 
você observe que para cada especificador de formato existe um argumento na 
lista de argumentos. Dê uma olhadinha no exemplo a seguir: 
 
 Argumento 
 
Printf ("\nAgora a segunda letra é: %c ", frase[1]); 
 
 Especificador de formato 
Neste caso, o especificador de formato é uma variável do tipo char e o argumento 
é a segunda posição do vetor frase. 
Não sei se vocês observaram, mas nas strings de controle apresentadas existe 
um caractere que nunca foi exibido no console. Ele é o caractere (invisível) de 
nova linha (\n) que provoca um salto para a próxima linha onde será impressa a 
nova mensagem. Existem outros caracteres semelhantes que apresentam barra 
invertida e são chamados constantes de barra invertida. 
 
Um especificador de formato começa sempre com o símbolo %, em seguida pode 
apresentar uma letra que indica o tipo de valor a ser exibido. Veja Tabela 1 a 
seguir. 
 
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS 
Departamento de Ensino do 2o grau - Coordenação de Eletrônica 
Disciplina: Laboratório de Introdução a Programação 
Professora: Rosângela Fátima da Silva 
 
 
20 
 
Tabela 1 - Especificadores de formato da função printf(). 
Caractere Propósito 
%c Exibir um caractere 
%d Exibir um valor inteiro com sinal 
%i Exibir um valor inteiro com sinal 
%e Exibir um valor em notação científica com “e” minúsculo 
%E Exibir um valor em notação científica com “E” maiúsculo 
%f Exibir um valor em ponto flutuante 
%g Exibir um valor de ponto flutuante em formato %f ou %e 
(formato mais significativo para exibir o valor). 
%G Exibir um valor de ponto flutuante em formato %F ou %E 
(formato mais significativo para exibir o valor). 
%o Exibir um valor em notação octal 
%s Exibir uma string de caracteres 
%u Exibir um valor inteiro sem sinal 
%x Exibir um valor hexadecimal sem sinal (letras minúsculas) 
%X Exibir um valor hexadecimal sem sinal (letras maiúsculas) 
%p Exibir o endereço de uma variável (ponteiro) 
%n O argumento associado é um ponteiro para inteiro no qual 
o número de caracteres escritos até esse ponto é colocado 
%% Exibir o símbolo % 
 
 
Scanf() 
O formato geral da