2014
CTI UNESP
Profª Kátia Lívia Zambon Adaptação- Apostila de Ling. C da Profª Ariane Scarelli
Identifique sua apostila Nome: __________________________________ Turma:
51B
SUMÁRIO 1
2
INTRODUÇÃO .......................................................................................................................................................... 1 1.1 NÍVEL ......................................................................................................................................................... 1 1.2
PORTABILIDADE .................................................................................................................................... 1
1.3
LINGUAGEM ESTRUTURADA ............................................................................................................. 1
DESENVOLVIMENTO DE PROGRAMAS ........................................................................................................... 1 2.1 PROCESSO .............................................................................................................................................. 1 2.2. ESTRUTURA DOS PROGRAMAS ............................................................................................................. 2
3
4 5
FUNÇÃO printf ........................................................................................................................................................ 3 3.1 SEQUÊNCIAS DE ESCAPE ................................................................................................................... 3 3.2
CÓDIGOS PARA IMPRESSÃO FORMATADA .................................................................................. 4
3.3
ESPECIFICADORES DE COMPRIMENTO E PRECISÃO ............................................................... 4
VARIÁVEIS ............................................................................................................................................................... 6 OPERADORES ........................................................................................................................................................ 7 5.1 OPERADORES ARITMÉTICOS ............................................................................................................ 7 5.2
OPERADORES DE INCREMENTO E DECREMENTO ..................................................................... 8
5.3
OPERADORES ARITMÉTICOS DE ATRIBUIÇÃO .......................................................................... 10
5.4
OPERADORES RELACIONAIS .......................................................................................................... 11
5.5
OPERADORES LÓGICOS ................................................................................................................... 11
5.6
OPERADOR DE ENDEREÇO (&) ....................................................................................................... 11
5.7
OPERADOR CONDICIONAL (?) ......................................................................................................... 12
5.8
OPERADOR DE CONVERSÃO DE TIPO (cast) .............................................................................. 13
5.9
ENCADEAMENTO DE EXPRESSÕES .............................................................................................. 13
5.10
PRECEDÊNCIA DOS OPERADORES ............................................................................................... 13
6 FUNÇÃO scanf ...................................................................................................................................................... 14 7 COMANDO if .......................................................................................................................................................... 15 8 COMANDO for ....................................................................................................................................................... 18 9 COMANDO do-while............................................................................................................................................. 20 10 COMANDO while ................................................................................................................................................... 23 11 O PRÉ-PROCESSADOR C .................................................................................................................................. 25 11.1 Diretiva #define .................................................................................................................................... 25 11.2
Diretiva #include .................................................................................................................................. 26
12 FUNÇÕES getch E getche ................................................................................................................................. 26 13 FUNÇÕES getchar E putchar ......................................................................................................................... 27 14 MANIPULAÇÃO DE STRINGS............................................................................................................................ 27 14.1 FUNÇÕES gets E puts ......................................................................................................................... 29 14.2
FUNÇÃO stry ..................................................................................................................................... 29
14.3
FUNÇÃO strcat ...................................................................................................................................... 30
14.4
FUNÇÃO strlen ...................................................................................................................................... 30
14.5
FUNÇÃO strcmp .................................................................................................................................... 31
15 COMANDO switch ................................................................................................................................................ 32 16 APÊNDICES............................................................................................................................................................ 34 APÊNDICE A – Tipos de Dados em C .............................................................................................................. 34 APÊNDICE B – Device Driver ANSI.SYS ......................................................................................................... 35 APÊNDICE C – Tabela de Rotinas de Manipulação de String ..................................................................... 37
1
INTRODUÇÃO
poder adaptar para um dado computador softs escritos para um computador diferente). Durante
A linguagem C foi desenvolvida por Dennis
muito tempo C foi fornecida com o sistema
Ritchie em 1972, baseada na linguagem BL
operacional UNIX, mas com a popularidade dos
(Basic
-
micros, muitas implementações foram feitas e a
Linguagem de Programação Combinada) e na
partir de 1983 o Comitê Americam National
linguagem B, com a finalidade de reescrever o
Standards Institute (ANSI) - Instituto Nacional
sistema operacional UNIX. No entanto C não está
Americano de Padrões - foi reunido com a
presa ao UNIX ou a qualquer outro sistema
finalidade de padronizar a linguagem C.
Combined
Programming
Language
operacional ou máquina. A linguagem C possui a reputação de ser uma linguagem de programação de sistemas
1.3
LINGUAGEM ESTRUTURADA
porque ela é útil para escrever compiladores e sistemas operacionais, mas pode ser usada
Uma linguagem estruturada tem como
também para escrever a maioria dos programas
característica a compartimentalização, que é a
em muitos domínios diferentes.
capacidade da linguagem de seccionar e esconder do resto do programa todas as informações e instruções
1.1
NÍVEL
necessárias
somente
em
um
determinado bloco.
C é chamada de linguagem de médio nível, pois combina características de linguagem
2
DESENVOLVIMENTO DE PROGRAMAS
de baixo nível e de alto nível. Baixo nível: possui a funcionalidade e o
2.1
PROCESSO
poder do ASSEMBLY como manipulação de bits, bytes e endereços de memória.
O
Alto nível: oculta detalhes da arquitetura
de
desenvolvimento
de
programas em C envolve quatro os:
do computador, aumentando desse modo a eficiência da programação utilizando comandos de
processo
1. Criação ou edição do programa utilizando um editor
fácil entendimento.
2. Compilação 3. Linkedição 4. Execução
1.2
PORTABILIDADE O compilador C é um programa que A
medida
da
garante que seu arquivo-fonte não está violando
converter
um
qualquer regra de C. Se o arquivo não contém
programa que processa num computador ou
nenhum erro, o compilador cria um arquivo
sistema operacional para processar em outro
intermediário com a extensão OBJ. Se o seu
facilidade
portabilidade com
que
se
é
uma pode
computador ou sistema operacional (significa Profª Ariane Scarelli / Katia Livia Zambon
Linguagem C
1
programa violar
uma das
regras
de C, o
compilador gera um erro de sintaxe.
Onde: /* */
Comentários
main() Nome ou local de início do programa; Processo:
Símbolos agrupadores;
{ }
printf Comando a ser executado. COMPILADOR
ARQUIVO .C
Observações: ARQUIVO .OBJ
não há formato específico para digitação das linhas de um programa;
Arquivo(s) de biblioteca(s) .LIB
LINKEDITOR
convencionou-se o uso de endentação (torna o programa mais legível);
C
distingue
letras
maiúsculas
de
minúsculas;
os parênteses que seguem a palavra main são obrigatórios;
ARQUIVO .EXE
todas as instruções devem estar dentro dos colchetes que iniciam e terminam a função e são executadas na ordem em
2.2. ESTRUTURA DOS PROGRAMAS
que aparecem; nome-da-função(lista-de-argumentos)
declaração da lista-de-argumentos
comando do programa (exceto comandos
Início
{
de repetição: while/do-while/for);
. .bloco de declarações
}
uma função pode receber qualquer nome, desde que não seja um já existente;
.
deve-se colocar ponto-e-vírgula após cada
Fim da função
a colocação de comentários em C: /* para abrir e */ para fechar, sendo que tudo o que
estiver
entre
os
mesmos
será
ignorado pelo compilador; // indicam que Primeiro Programa em C - exemplo:
tudo o que estiver à direita das barras será ignorado;
/* Primeiro exemplo de prg em linguagem C */
o início lógico do programa é identificado
# include <stdio.h>
pela função main(), independentemente da
# include
sua posição física dentro do programa.
main() { printf (“Primeiro programa em C”); getche(); }
Profª Ariane Scarelli / Katia Livia Zambon
Linguagem C
2
3
FUNÇÃO printf
Definição:
a
função
Segundo Programa em C - exemplo:
printf
1
é
usada
para
apresentar informações no vídeo.
/* Segundo exemplo de prg em linguagem C */ # include <stdio.h> # include
Sintaxe:
main()
printf(“expressão-de-controle”,lista-de-argumentos)
{ printf(“Meu nome: escreva aqui seu nome\n”);
onde:
printf(“Idade: escreva aqui sua idade\n”);
expressão-de-controle: códigos especiais de
printf(“Estudo ou estudei em: escreva aqui sua
controle (sequências de escape) e/ou códigos
escola”);
para impressão formatada.
getche():
lista-de-argumentos: separados por vírgula
3.1
}
SEQUÊNCIAS DE ESCAPE
EXERCÍCIOS - printf
Sequências de escape são uma série de
Exercício 1: Faça um programa para apresentar
caracteres usados para manipular a tela e o
no vídeo informações sobre 2 jogos que você
teclado.
conhece. Dados como nome do jogo, empresa fabricante
Sequência
Resultado
e
ano
de
criação
devem
ser
considerados, além de outras que você julgue relevante. Cada informação deve ser apresentada
de Escape \a
Caractere de beep
em uma linha e entre um jogo e outro deve-se
\b
Caractere de Backspace
pular duas linhas. Utilize vários printf’s para
\n
Caractere de mudança de linha
apresentar as informações.
\r
Caractere de return (enter)
\t
Caractere de tab horizontal
\\
Caractere de barra invertida
\’
Caractere de aspas simples
\”
Caractere de aspas duplas
\?
Caractere de interrogação
Exercício 2: Refaça o exercício anterior com as mesmas configurações (pular as linhas) mas utilize somente 1 printf.
Exercício 3: Faça um programa que apresente no vídeo os seguintes dados:
Nome de uma cidade e o estado que você conheceu e que seja diferente da que você mora;
Emita um beep e mude de linha
Nome de um local (cidade, estado e país) que
1
Consulte o APÊNDICE B para tabela com device driver ANSI.SYS. Profª Ariane Scarelli / Katia Livia Zambon
você gostaria de conhecer. Linguagem C
3
Exercício 4: Escreva um programa que apresente
Terceiro Programa em C - exemplo:
no vídeo 5 estados do Brasil e suas capitais. Cada informação deve estar em uma linha.
/* Terceiro exemplo de prg em linguagem C */ # include <stdio.h>
Exercício 5: Faça um programa que imprima o
# include
número e nome do colega da posição anterior à
main()
sua na lista de chamada, seu número e seu nome
{
e o nome do colega que ocupa a posição posterior
printf(“Valor 10 em Decimal %d \n”,10);
na lista. Utilize 3 comandos printf pulando uma
printf(“Valor 10 em Hexadecimal %x \n”,10);
linha a cada nome.
printf(“Valor 10 em Hexadecimal %X \n”,10);
Exemplo:
printf(“Valor 10 em Octal %o \n”,10);
09 – meu colega
printf(“Resultado
10 – meu nome
de
2*3*5
e
igual
a:
%d”,2*3*5);
11 – outro colega
getche(); }
3.2
CÓDIGOS PARA IMPRESSÃO FORMATADA
Código de
Resultado
Formatação %c
Apresenta um único caractere
%s
Apresenta uma cadeia de caracteres
%d
Apresenta número inteiro na
3.3
base decimal %f
COMPRIMENTO E PRECISÃO
Apresenta número decimal na base decimal
%x ou %X
Apresenta número na base hexadecimal
%o
ESPECIFICADORES DE
Apresenta número na base
Em muitos casos é preciso que os programas
exibam
as
saídas
num
formato
determinado. Isso pode ocorrer especificando um tamanho mínimo de campo para exibir o valor.
octal %u
%%
Apresenta número na base
Quarto Programa em C - exemplo:
decimal sem sinal
/* Quarto exemplo de prg em linguagem C */
Apresenta o caractere %
# include <stdio.h> # include
main()
Profª Ariane Scarelli / Katia Livia Zambon
Linguagem C
4
{
3
%04d
0003
Preenche
com
3
printf("Sem especificacao = %f", 3.3);
zeros p/ completar o
printf("\nCom uma casa decimal = %1.1f", 3.3);
tamanho do campo
printf("\nOutras \n%6.4f
especificacoes:
\n%6.2f
\n%8.4f", 12.3456, 12.345, 12.3456);
printf("\nResultados = %d
%d", 3+4, 3-4);
getche();
EXERCÍCIOS – printf com valores
} Exercício 6: Faça um programa que mostre um número inteiro positivo em uma linha e em outra linha um número inteiro menor que o anterior. Calcule e mostre a diferença entre eles. O cálculo deverá ser realizado no próprio comando printf.
Exercício 7: Faça um programa que mostre o ano atual e o ano de seu nascimento. Calcule e mostre Outros exemplos Valor Especifi-
sua idade. Saída
Nota
cador 5
5
%3.3d
%3.2d
Exercício 8: Faça um programa que apresente o 005
05
Deixa 2 zeros p/
seu peso atual (em Kg) e a sua altura(em metros).
indicar precisão p/ 3
Neste caso, para indicar as casas decimais é
díg.
necessário utilizar o ponto decimal e não a vírgula.
Deixa
espaço
p/
preencher o campo;
Mostre o resultado do cálculo indicando o seu IMC.
um zero p/ indicar precisão
p/
dois
dígitos 555
555
%3.3d
555
%7.5d
00555
o
Exercício 9: Escreva um programa para informar
número mínimo de
a largura e o comprimento de um cômodo em
dígitos
metros. Pode utilizar números reais (com ponto
Valor
contém
Dois
espaços
deixados p/ atingir o
decimal).
Apresente
sua
área
em
metros
quadrados.
tamanho do campo;
-5
%d
-5
dois zeros p/ indicar
Exercício 10: Faça um programa que calcule para
a precisão de cinco
o cômodo do exercício 7 a potência de iluminação
dígitos
necessária para o ambiente. Sabe-se que para
Mostra negativo
o
valor
cada metro quadrado são necessários 18W de potência. Apresente o resultado no comando printf.
Profª Ariane Scarelli / Katia Livia Zambon
Linguagem C
5
Exercício 11: Escreva um programa para mostrar
Tipo
Valor Armazenado
o valor total de um bem material (pode ser um
int
Inteiros de -32.768 a + 32.767
carro, um celular ou outro bem) e também o
float
número de parcelas que a pessoa vai pagar este
Ponto flutuante com 6 ou 7 dígitos de precisão
bem sem juros. Apresente o total de cada parcela.
char double
Exercício 12: Escreva o resultado dos seguintes
Caracteres (ASCII) Ponto flutuante com 13 ou 14 dígitos de precisão
comandos printf: a) printf(“Linguagem C\a Linguagem C\a”); b) printf(“AB\b\bC”); c) printf(“Comandos do DOS residem no C:\\DOS”) d) printf(“\”Fique alerta !\” gritou o menino”); e) printf(“%d + %d = %d”, 3, 4, 3 + 4); f) printf (“A\nB\nC”);
As variáveis em C podem ser formados por letras, números e sublinhado, sendo o primeiro caractere obrigatoriamente uma letra ou sublinhado.
Letras maiúsculas e minúsculas são diferentes (a lingaugem C é case-sensitive). Os 32 primeiros caracteres são significativos.
g) printf (“A\tB\tC”); h) printf(“XXXAB\rC”);
Quinto Programa em C - exemplo:
/* Quinto exemplo de prg - variáveis */ 4
VARIÁVEIS
/* Prg do IMC com variáveis */ #include <stdio.h>
Uma variável é definida como um espaço de memória reservado para armazenar um tipo de dado que é identificado através de um nome. Essa
#include
main() {
variável pode, em tempos diferentes, receber
int inum_chamada=40;
diferentes valores.
float fpeso=86.2; float faltura=1.70;
A definição de variável consiste em:
identificar o seu tipo;
definir seu nome.
float fIMC; fIMC=fpeso/(faltura*faltura); printf("O IMC da pessoa de numero %d que tem peso %4.1f e altura %4.2f eh igual a
Exemplo: int var1;
%3.1f",inum_chamada,fpeso,faltura,fIMC); getche();
Obs.: É obrigatório definir todas as variáveis
}
utilizadas no programa 2
Tipos Básicos de Variáveis :
2
Tabela completa no APÊNDICE A.
Profª Ariane Scarelli / Katia Livia Zambon
Linguagem C
6
5
OPERADORES
Exercício 15: Para o programa apresentado abaixo, dê os resultados dos comandos printf
5.1
OPERADORES ARITMÉTICOS
(indique
se
houve
mudança
de
linha
na
apresentação dos resultados) Operador
Significado
=
Atribuição
+
Soma
-
Subtração
*
Multiplicação
/
Divisão
%
#include <stdio.h> #include
main() { float div_result; float mult_result;
Módulo (devolve o resto da divisão
float soma_result;
entre inteiros)
float sub_result; int div_modulo; div_result = 25 / 3; div_modulo = 25 % 3;
EXERCÍCIOS – variáveis numéricas
mult_result = 3 * 2.5; soma_result = div_result + mult_result;
Exercício 13: Faça um programa que declare
sub_result = mult_result - div_result;
duas variáveis do tipo int, atribua valores distintos
printf(“Divisao float %f Divisao inteira %d
para estas variáveis e mostre:
Multiplicacao
•
A soma dos dois valores;
div_modulo,mult_resul);
•
A diferença entre eles;
•
A multiplicação entre eles;
soma_result, sub_result);
•
A divisão entre eles. O segundo valor não deve
}
printf(“Adicao
%f\n”, %f
div_result, Subtracao
%f\n”,
ser zero.
Exercício 14: Faça um programa no qual sejam
Exercício 16: Elabore um programa que execute
declaradas duas variáveis do tipo int, uma variável
as instruções abaixo:
do tipo float e sejam atribuídos valores quaisquer
Declare 3 variáveis do tipo float (uma para
(que você vai inventar). A seguir, mostre um
armazenar a cotação do dólar, outra para
resultado em cada linha para as operações:
guardar um valor em moeda nacional e
•
A soma dos dois valores inteiros;
outra para fazer o cálculo da conversão)
•
O dobro do primeiro valor inteiro somado com o
dobro do segundo valor inteiro; •
O valor float multiplicado por 6.5;
•
A soma dos três valores.
Atribua para a primeira o valor do dólar (no dia de hoje)
Atribua para a segunda um valor em reais (que se deseja saber quanto será em dólares)
Profª Ariane Scarelli / Katia Livia Zambon
Linguagem C
7
Faça o cálculo da conversão de reais para
5.2
OPERADORES DE INCREMENTO E DECREMENTO
dólares na terceira variável
Apresente como resultado o valor do dólar no dia de hoje, o montante em reais e o
Operador
valor convertido utilizando as variáveis na
++
Incrementa de 1 seu operando
impressão.
--
Decrementa de 1 seu operando
Significado
Os operadores de incremento podem trabalhar nos Exercício 17: Elabore um programa em que sejam
modos pré-fixado e pós-fixado, onde:
declaradas 2 variáveis do tipo float e a elas atribuídos as notas de 2 provas (os valores
pós-fixado: o operador aparece após o nome da
deverão estar no intervalo de 0 a 10). Calcule e
variável. O valor da variável é incrementado após
mostre a média com 1 casa decimal.
ser utilizado.
Exercício 18: Elabore um programa que declare
Exemplo:
k = 2;
uma variável do tipo inteiro, atribua um valor a ela,
b = k++;
calcule e mostre:
printf(“%d %d”, k, b);
o quadrado do valor inteiro;
o dobro deste número;
a divisão entre o quadrado e dobro
Resultado: k=3 b=2
deste número pré-fixado: o operador aparece antes do nome da Exercício 19: Elabore um programa que declare
variável. O valor é incrementado antes de ser
uma variável do tipo float que indique uma
utilizada.
temperatura em graus Celsius. Transforme-a em Farenheit e Kelvin e apresente os três valores,
Exemplo:
como no exemplo:
k = 2; b = ++k;
Temperatura em Celsius: 100
printf(“k=%d b=%d”, k, b);
Temperatura em Farenheit: 212 Temperatura em Kelvin: 373.15
Exercício 20: Elabore um programa que declare
Resultado: k=3 b=3
Exemplo:
m = 4;
uma variável do tipo float e atribua um valor
n = 2 * m++;
indicando a o preço de um produto. Calcule e
printf(“m=%d n=%d”, m, n);
mostre este valor com um reajuste de 10% e com um desconto de 10%. Exemplo:
Resultado: m=5 n=8
Valor do produto: R$ 125.00 Valor com reajuste: R$ 137.50 Valor com desconto: 112.50 Profª Ariane Scarelli / Katia Livia Zambon
Linguagem C
8
Exemplo:
21.b)
m = 4;
int a = 7;
n = 2 * ++m;
int b = 4;
printf(“m=%d n=%d”, m, n);
int c; a = a++ - b;
Resultado: m=5 n=10
b - -; c = a + b; Valor final de a = ______
O
funcionamento
básico
do
operador
de
decremento é similar ao operador de incremento.
Observações:
Valor final de b = ______ Valor final de c = ______
21.c)
int a = 2; int b = 5;
Formatos válidos para os operadores de
int c = 1;
incremento e decremento:
b = a++ * b++;
++variavel
variavel++
--variavel
variavel--
c = ++c + a + b; Valor final de a = ______ de
Valor final de b = ______
decremento têm precedência de execução em
Valor final de c = ______
Os
operadores
de
incremento
e
relação aos operadores aritméticos.
Esses operadores só podem ser utilizados em variáveis
e
nunca
com
expressões
21.d)
int a = 4; int b = 6;
ou
int c;
constantes.
c = ++a * b - -; Valor final de a = ______ EXERCÍCIOS – operadores
Valor final de b = ______
incremento/decremento
Valor final de c = ______
Exercício 21: Para as variáveis declaradas e com
21.e)
int a = 4;
os valores atribuídos, dê os valores finais que
int b = 6;
estão sendo solicitados:
int c;
21.a)
c = - - b * - - a;
int a = 10; int b = 5;
Valor final de a = ______
int c;
Valor final de b = ______
a++;
Valor final de c = ______
++b; c = a + b;
21.f)
int a = 4;
Valor final de a = ______
int c = 2;
Valor final de b = ______
int d;
Valor final de c = ______
d = 2 * a++ - (- - c);
Profª Ariane Scarelli / Katia Livia Zambon
Linguagem C
9
Valor final de a = ______
valor *= 5; // valor = valor * 5
Valor final de c = ______
printf(“Apos a multiplicacao %d\n”, valor);
Valor final de d = ______
21.g)
}
int a = 4; int d; d = - - a * - - a;
Valor final de a = ______ Valor final de d = ______
Outros exemplos: 5.3
OPERADORES ARITMÉTICOS DE ATRIBUIÇÃO
Operação de
Operação
Atribuição
Equivalente
j += 2
j=j+2
m *= k + 2
m = m * (k + 2)
d /= 256
d = d / 256
e %= 3
e=e%3
l -= r * 4
l = l - (r * 4)
Os operadores aritméticos de atribuição apresentados abaixo, agilizam a execução de determinados cálculos já que executam de uma única vez uma atribuição e uma expressão aritmética.
Exemplos:
As expressões com esses operadores
Operação de
Operação
Atribuição
Equivalente
a += 5
a=a+5
a -= 2
a=a-2
a *= 7
a=a*7
a /= 3
a=a/3
produzem um código de máquina mais eficiente já que são mais compactas. EXERCÍCIOS – operadores de atribuição
Exercício 22: Dê os resultados das operações: Comando
Exemplo: main()
Resultado
a = 15 - 2 * 3 a = (15 - 2) * 3
{
a = 5 * 9 / 15 int valor = 100; printf(“Valor inicial %d\n”, valor); valor /= 10; // valor = valor / 10 printf(“Apos a divisao %d\n”, valor); valor -= 5; // valor = valor - 5 printf(“Apos a subtracao %d\n”, valor);
Profª Ariane Scarelli / Katia Livia Zambon
a = (5 + 2) * 5; a=5+2*5 a = (3 + 5 + 2) * 2 a = (3 + 5) + 2 * 2 a = (3 + 5 * 2) * 2
Linguagem C
10
Exercício 23: Fornecidos os valores para as
5.5
OPERADORES LÓGICOS
variáveis a, b e c, obter o resultado das expressões e variáveis envolvidas. Considere que
Operador
em cada item os valores de a, b, c voltam aos
&&
Função
Exemplo
Lógico E (AND)
valores originais
&& freq > 75) ||
a=2
if (media > 6
b=3
Lógico OU (OR)
c=4
if ( idade == 16 || serie > 9)
!
Lógico de negação if (! valor > 100)
23.a) c += 10 - a++ 23.b) b *= 2 + ++c 23.c) c /= 2 + a
Exemplo:
23.d) b - = 1* c
if (var1 == 0 || var2 == 0) { printf(“Resultado: %d”, res);
5.4
OPERADORES RELACIONAIS
var1 = 1; var2 = var1;
Os operadores relacionais de C são usados para
}
fazer comparações. São eles:
Operador
Função
Exemplo
5.6
OPERADOR DE ENDEREÇO (&)
>
Maior que
a>b
<
Menor que
a+b
>=
Maior ou igual a
a >= b
dividida
<=
Menor ou igual a
a <= 0
chamadas posições de memória. Cada posição de
==
Igual
a == b
memória é capaz de armazenar uma unidade
!=
Diferente
!= 0
chamada byte. Todas as variáveis criadas no
A memória do computador é internamente em
unidades
de
armazenamento
programa são armazenadas em posições de memória e a elas nos referenciamos através de um nome (ex.: valor).
Observações:
A expressão a = b atribui o valor de b para a
O operador de endereço permite trabalhar
variável a. A expressão a == b testa se as
diretamente sobre a posição de memória, assim se
variáveis a e b são iguais. Um erro comum é
utilizarmos uma variável precedida do operador &
usar um único sinal de igual como operador
teremos o endereço do primeiro byte onde a
relacional.
variável está armazenada.
Os
operadores
aritméticos
precedência que a dos
têm
maior
relacionais. Isto
Exemplo:
significa que serão avaliados antes.
Profª Ariane Scarelli / Katia Livia Zambon
Linguagem C
11
main()
max = (a > b) ? a: b;
{
min = (a < b) ? a: b; printf (“Max = %d Min = %d”, max, min);
int valor = 400; printf(“valor: %d e endereco: %u”,valor, &valor);
}
}
Outro Exemplo: 5.7
main()
OPERADOR CONDICIONAL (?)
{ O operador condicional (?) é utilizado para
int a=10, b=5;
simplificar e resumir expressões condicionais.
printf (“Max = %d Min = %d”, (a > b) ? a: b, (a < b) ? a: b); }
Sintaxe:
(expressão) ? De uma maneira geral expressões do tipo:
expressão_verdadeira : expressão_falsa
if (condição) expressão_1;
Se expressão é verdadeira, o resultado da else
operação é expressão_verdadeira. Se expressão
expressão_2;
for falsa, o resultado será expressão_falsa. Quando o compilador C encontra o operador condicional,
ele
avalia
a primeira
das
três
expressões. Se o resultado é verdadeiro, o
Podem ser simplificadas substituindo-se pelo operador condicional.
compilador avalia a segunda expressão, que é, então, o resultado dessa operação. Se a primeira
Então, no exemplo: if (a>0)
expressão é falsa, então a terceira expressão é
b=-150;
avaliada, e seu resultado é a saída da operação. else
b=150;
Exemplo: main() Teremos:
{
b = a > 0 ? -150 : 150;
int max, min, a=10, b=5; Profª Ariane Scarelli / Katia Livia Zambon
Linguagem C
12
5.8
OPERADOR DE CONVERSÃO DE TIPO
Exemplo:
(cast)
x = (a = 2 , a + 3);
O operador cast executa uma conversão forçada de tipo, convertendo uma expressão de um tipo
Neste exemplo, a variável x receberá o valor 5.
para outro especificado dentro dos parênteses.
Sintaxe: (cast) expressão;
5.10
Exemplos:
Se operadores de diferentes níveis de precedência
a = (int) (a+b);
PRECEDÊNCIA DOS OPERADORES
ocorrerem no mesmo comando, as operações são calculadas na ordem de precedência (da mais alta
No exemplo acima, um cast para converter a soma
para a mais baixa.
de a e b para um valor int foi usado. Operadores - Precedência (alta para baixa) #include <stdio.h> main ()
()
{
++ -- + - * & ! ~ (type) sizeof int num;
* / %
float f;
+ -
num=10;
== !=
f = (float) num / 7;
&
printf ("%f",f);
^
}
| &&
No exemplo acima, um cast para converter a
||
variável num de int para float foi usado, em
?:
seguida, fez-se a divisão por 7.
= += -= *= /= %= &= ^= |= <<= >>= ,
5.9
ENCADEAMENTO DE EXPRESSÕES
O operador , (vírgula) determina uma lista de expressões
que
sequencialmente.
deve
ser
executada
O valor retornado por uma
expressão com o operador , é sempre dado pela expressão mais à direita.
Profª Ariane Scarelli / Katia Livia Zambon
Linguagem C
13
6
FUNÇÃO scanf
dias = anos * 365; printf(“Sua idade em dias e’: %d “, dias);
Esta função permite ler dados formatados através do teclado. É considerada o complemento da
getche(); }
função printf. Obs.: A função scanf não é apropriada para A posição de memória onde o valor ado por scanf será armazenado é indicado diretamente pelo endereço da variável.
ar pelo teclado valores tipo string, pois ela não aceita espaço em branco em uma sequência de caracteres. A função gets() é mais indicada e veremos adiante.
Sintaxe: scanf (“código de formatação”, endereço da variável);
Exemplo: se for digitado “COLÉGIO TÉCNICO”, o resultado será COLÉGIO.
Código de formatação para scanf Código de
Resultado
EXERCÍCIOS – com função scanf
formatação %c
Ler um único caractere
Exercício 24: Escreva um programa para ler dois
%d
Ler um número inteiro na base
valores do tipo int (utilizar a função scanf). Calcular
decimal
o
Ler uma sequência de
resultados.
%s
produto
destes
números
e
imprimir
os
caracteres %f
%o
Ler um número em ponto
Exercício 25: Escreva um programa que e
flutuante
(leia com a função scanf) três números do tipo
Ler um número inteiro na base
float e imprima a média aritmética.
octal %x
Ler um número inteiro na base
Exercício 26: Elabore um programa que receba o
hexadecimal
valor do raio de uma esfera (tipo float). Calcule e apresente o volume e a área da esfera, baseandose nas fórmulas dadas. Utilize para pi o valor
Exemplo:
constante de 3.14. AREA 4R 2 4 VOLUME R 3 3
/* Exemplo utilizando a função scanf */ #include <stdio.h> #include
Exercício 27: Faça um programa que receba o
main()
ano de nascimento de uma pessoa e o ano atual,
{
calcule e mostre: int anos, dias;
a idade dessa pessoa em anos;
printf(“Digite sua idade em anos: ”);
quantos dias esta pessoa já viveu;
scanf(“%d”, &anos);
quantos anos essa pessoa terá em 2025
Profª Ariane Scarelli / Katia Livia Zambon
Linguagem C
14
Exercício 28: Um trabalhador deseja calcular seu
7
COMANDO if
salário líquido. Para isto, faça um programa que receba o número de horas que ele trabalhou no
Utilizado na tomada de decisão baseado no
mês e o valor do salário mínimo de hoje. Calcule e
resultado verdadeiro ou falso da expressão.
mostre o salário a receber seguindo as regras abaixo:
Sintaxe: if (condição de teste)
o valor da hora trabalhada é 1/24 do salário
instrução; else
mínimo; o salário bruto é calculado considerando o
instrução;
número de horas trabalhadas multiplicado pelo valor da hora trabalhada; o imposto equivale a 5% do salário bruto;
Considerando
o salário líquido a receber equivale ao salário
Code.org, veja o exemplo abaixo:
as
tarefas
desenvolvidas
bruto menos o imposto Code.org: Fase 9 – Quebra-cabeça 11 Exercício 29: Faça um programa para calcular o custo de uma viagem de automóvel. Para isto receba o total de quilômetros percorridos e o valor pago nos pedágios. ita que o carro utilize o combustível etanol, que custa R$ 1.89 e o consumo do veículo é de 8.5 km/l. Apresente o custo total da viagem.
Litros = qtde_km/8.5 Total combustível = Litros * 1.79 Total viagem = Total combustível + total pedágios
Exercício 30: Faça um programa que leia o número total de eleitores de um município, o número de votos brancos, nulos e válidos. Calcular e escrever o percentual que cada um representa em relação ao total de eleitores.
Profª Ariane Scarelli / Katia Livia Zambon
Linguagem C
15
no
Exemplo: if sem else
Exemplo: if-else-if
if (valor > 0)
main()
printf (“valor positivo maior que cem”);
{ valor = 50; if (valor <= 100) {
Exemplo: if - else
if (valor < 10) printf(“valor menor que 10”);
if (valor > 0 ) printf(“Número positivo”);
}
else
else printf(“Número negativo ou nulo”);
printf(“valor maior que 100”); }
Exemplo: if-else
Exemplo: if-else-if
if (teste != 1)
int andar = 3;
{
if (andar == 1) ax = 0; bx += 1;
printf(“Primeiro andar – artigos esportivos”); else if (andar == 2) printf(“Segundo andar – moda feminina”);
} else
else if (andar == 3) printf(“Terceiro andar – moda masculina”);
{ ax += 1; bx = 0;
else printf(“Andar invalido”);
} EXERCÍCIOS – comando if / if-else Exemplo: if-else-if Exercício 31: Escreva um programa para ler um
if (valor > 0 ) printf(“Número positivo”); else
valor inteiro e apresentar uma mensagem que indique se o número é maior que 100 ou menor
if (valor > 0 )
que 100.
printf(“Número negativo”); Exercício 32: Faça um programa para ler 2
else printf(“Valor nulo”);
valores
inteiros
(considere
que
não
serão
informados valores iguais) e escrever o maior deles.
Profª Ariane Scarelli / Katia Livia Zambon
Linguagem C
16
Exercício 33: Faça um programa para ler o ano
Exercício
38:
de nascimento de uma pessoa, calcular sua idade
transformar
e escrever uma mensagem que diga se ela poderá
Fahrenheit para Celsius. C = 5 / 9 * (F - 32)
ou não votar nas eleições deste ano.
a
Escreva
um
programa
para
temperatura
fornecida
em
se temp. em Celsius for menor ou igual a zero, imprimir “Frio ártico !”;
Exercício 34: Faça um programa que leia um
imprimir “Muito frio !”;
número inteiro e apresente uma mensagem
indicando se este número é par ou ímpar. Dica: Utilize o operador % que retorna o resto da divisão entre inteiros e verifique se o resto é zero.
se temp. em Celsius de 01 a 12 graus,
se temp. em Celsius de 13 a 23 graus, imprimir “Clima ameno !”;
se temp. em Celsius de 24 a 32 graus, imprimir “Calor !”;
Exercício 35: Faça um programa que leia o placar
de um jogo de futebol (os gols de cada time, um valor em cada variável do tipo int). Informe se
se temp. em Celsius de 35 a 40 graus, imprimir “Calor tórrido !”;
Qualquer outro valor, imprimir “Sem registro !”;
houve empate ou se a vitória foi do 1º ou do 2º time. Exercício 39: Em uma competição de saltos Exercício
36:
João
Pescador
comprou
um
ornamentais, 6 (seis) juízes informam notas reais
microcomputador para controlar o rendimento
variando de 0 a 10. A nota final do atleta deve
diário de seu trabalho. Toda vez que ele traz um
excluir a maior e a menor nota dos juízes e é
peso de peixes maior que o estabelecido pelo
composta pela soma das quatro demais notas.
regulamento de pesca (50 quilos) deve pagar uma
Faça um programa que lê do usuário as seis notas
multa de R$ 4,00 por quilo excedente. João
dos juízes e informa a nota final do atleta (a soma
precisa de um programa que leia o peso de peixes
das notas excluindo a menor e a maior delas).
e verifique se há excesso, mostrando a quantidade de quilos excedidos e o valor da multa que João
Exercício 40: Escreva um programa que leia a
deverá pagar. Caso contrário, mostrar uma
idade de 2 homens e 2 mulheres (considere que a
mensagem de que não houve excesso.
idade dos homens será sempre diferente, assim como das mulheres). Calcule e escreva a soma
Exercício 37: Faça um programa que leia o nome
das idades do homem mais velho com a mulher
do cliente e a quantidade de energia elétrica
mais nova, e o produto das idades do homem mais
consumida em KW. Considerando o preço do KW
novo com a mulher mais velha.
de R$ 0,50, determinar o valor a ser pago, sabendo que se o valor for inferior a R$ 30,00 o
Exercício 41: Leia a velocidade máxima permitida
consumidor recebe um desconto de 10% em sua
em uma avenida e a velocidade com que o
conta, caso contrário, recebe um desconto de 5%
motorista estava dirigindo nela e calcule e
(comando if). Apresentar o nome do cliente e o
apresente a multa que uma pessoa vai receber,
valor a ser pago.
sabendo que são pagos:
Profª Ariane Scarelli / Katia Livia Zambon
Linguagem C
17
a) 50 reais se o motorista estiver ultraar em até
10km/h
a
velocidade
permitida
(ex.:velocidade máxima: 50km/h; motorista a
Exercício 45: Faça um programa que receba o código de um produto e o classifique de acordo com a tabela abaixo:
60km/h ou a 56km/h); b) 100 reais, se o motorista ultraar de 11 a 30
Código
Classificação
km/h a velocidade permitida.
1
Alimento não perecível
c) 200 reais, se estiver acima de 31km/h da
2a4
Alimento perecível
velocidade permitida.
5a6
Vestuário
7a9
Higiene pessoal
10 a 15
Utensílios e utilidades
Exercício 42: Escreva um programa que leia o valor de 3 ângulos de um triângulo e escreva se o triângulo é acutângulo,retângulo ou obtusângulo.
domésticas Qualquer outro código
inválido
Observaçôes: a) Triângulo retângulo: possui um ângulo reto (90 graus) b) Triângulo
obtusângulo:
possui
um
ângulo 8
obtuso (ângulo maior que 90 graus)
COMANDO for
c) Triângulo acutângulo: possui 3 ângulos agudos Utilizado quando há necessidade de repetir a
(ângulo menor que 90 graus)
execução de instruções por uma quantidade de Exercício 43: Elaborar um programa para ler os
vezes.
três lados de um triângulo, verificar se formam um triângulo (cada lado tem que ser menor que a
Sintaxe: for ( var1 = inicio; teste-fim; incremento ) intrução(ões);
soma dos outros dois) e identificar o tipo de triângulo: equilátero => 3 lados iguais, isósceles => 2 lados iguais, escaleno => 3 lados diferentes. Onde: Exercício 44: Faça um programa que auxilie o cálculo para o aumento no salário de jogadores de futebol. Leia o salário atual, calcule o aumento e
Aumento – R$ 2.300,00
20%
R$ 2.300,01 – R$ 4.500,00
15%
R$ 4.500,01 – R$ 7.000,00
10%
Acima de R$ 7.000,00
5%
R$ 0,00
contador que controla a quantidade de vezes que o conjunto de instruções será repetido.
mostre o novo salário. Salário atual
var1 = inicio inicializa com determinado valor o
teste-fim especifica a condição de término da estrutura.
incremento
define
de
quanto
incrementado o contador de repetições, a cada agem.
Profª Ariane Scarelli / Katia Livia Zambon
será
Linguagem C
18
EXERCÍCIOS – comando for
Code.org: Fase 19 – Quebra-cabeça 2
Exercício 46: Faça um programa que apresente na tela 100 vezes a frase: “Eu ADORO estudar no CTI”, utilizando o comando for.
Exercício 47: Faça um programa que apresente os valores de 1 a 100 na tela, incrementando de um em um com o comando for.
Exercício 48: Apresente na tela os valores de 1 a 500 incrementando de 10 em 10.
Exercício 49: Faça um programa que apresente os valores de 100 a 0 na tela, decrementando de um em um com o comando for.
Exercício 50: Digite e teste o programa abaixo verificando o uso do comando for e sua execução.
main() { Visualização das instruções:
char maiusc, minusc; printf(“Maiuscula\tMinuscula\n”); for( minusc = ‘a’, maiusc = ‘A’; maiusc <= ‘F’; maiusc++, minusc++) printf(“%c\t\t%c\n”, maiusc, minusc); }
Exemplo: incrementando de 10 em 10 for
(int
contador
=
1;
contador
obs.: se o corpo do laço for contiver mais de uma <=
300;
instrução, deve-se usar chaves.
contador+=10) printf(“comando para desenhar linha \n”); Exercício 51: Faça um programa que leia duas variáveis do tipo int, uma deve indicar o início par Exemplo: incrementando de 1 em 1 for(int a = 0; a <= 10; a++ ) printf(“%d \n”, a);
Profª Ariane Scarelli / Katia Livia Zambon
ao comando for e a outra o final. Invente uma frase e repita o número de vezes do início até o final lido.
Linguagem C
19
Exercício 52: Faça um programa para mostrar os
9
COMANDO do-while
números pares de 0 a 200. No comando do-while o teste de condição de Exercício 53: Faça um programa que leia uma
término
variável do tipo int maior que zero e apresente os
obrigando assim a execução das instruções pelo
números ímpares de 1 a esta variável.
menos uma vez.
Exercício 54: Faça um programa que leia um
Sintaxe:
é
executado
no
fim
da
estrutura,
valor do tipo int e apresente a tabuada deste número lido. Exemplo de apresentação:
do {
Valor lido: 4
instrução(ões);
Tabuada do número: 4
}while( teste );
4x0=0 4x1=4 4x2=8
Exemplo: incrementando de 1 em 1 (comando
........
for)
4 x 10 = 40
for( int a = 0; a <= 10; a++ ) printf(“%d \n”, a);
Exercício 55: Faça um programa para ar y
dois números pelo teclado (x e y) e calcular x .
Exercício 56: Faça um programa que leia dois
Exemplo: incrementando de 1 em 1 (comando
números inteiros (x e y) e calcule seu produto, sem
do-while)
utilizar o operador de multiplicação (*).
int a =0; do
Exercício 57: Faça um programa que determine o
{
quadrado de um número positivo através do
printf (“%d \n”,a);
seguinte método: "o quadrado de um número
a++;
positivo n é igual à soma dos n primeiros números
}while (a <= 10);
ímpares". Por exemplo, o quadrado de 3 é 9 = 1 + 3 + 5, e o de 6 é 36 = 1 + 3 + 5 + 7 + 9 + 11. Exemplo: Exemplo: Digite o número a ser elevado ao
/* Prg para apresentar e selecionar uma opção de
quadrado: 8
menu */ #include <stdio.h>
O quadrado de 8 é 64.
#include
main() {
Profª Ariane Scarelli / Katia Livia Zambon
Linguagem C
20
int x;
Exercício 60: Faça um programa que leia um
printf(“1 - Equação do 2º grau\n”);
valor inteiro e mostre a tabuada deste número com
printf(“2 - Polinômio”);
o formato do exemplo:
do
5x0=0
{
5x1=1 printf(“Digite a opção”);
....
scanf(“%d”, &x);
5 x 10 = 50
}while( x != 1 && x != 2 ); Exercício 61: Faça um programa para mostrar
}
todos os números inteiros de 1 a 100.
Exercício 62: Faça um programa para mostrar Exemplo:
todos os números inteiros pares de 1 a 200.
/* Prg para apresentar um valor de 1 a 10 */ #include <stdio.h>
Exercício 63: Desenvolva um programa para
#include
apresentar todos os valores inteiros ímpares
main()
situados na faixa de 100 a 200.
{ int cont=1;
Exercício
64:
Elaborar
um
programa
para
do
apresentar o os 20 primeiros números inteiros (de
{
0 a 20). printf(“\nValor de cont = %d”,cont); cont++;
Exercício 65: Faça um programa para calcular e
}while( cont <= 10 );
apresentar a soma dos 20 primeiros números
getche();
inteiros.
} Exercício 66: Elaborar um programa para ler um conjunto de valores inteiros até que se digite o EXERCÍCIOS – comando do-while
valor zero. Calcular e mostrar a soma e a quantidade de valores lidos.
Exercício 58: Faça um programa que escreva na tela 10 vezes a mensagem: ‘Eu adoro estudar no
Exercício 67: Elaborar um programa para ler um
CTI !!!’
número que indicará o tamanho do conjunto de valores a ser lido (iTam). Deixe o usuário digitar
Exercício 59: Faça um programa para ler um valor
valores inteiros até atingir esta quantidade iTam.
inteiro. Após a leitura, imprimir o valor lido 5 vezes
Apresente a soma dos valores lidos.
multiplicando por 10, por 20, por 30, por 40 e por 50.
Profª Ariane Scarelli / Katia Livia Zambon
Linguagem C
21
Exercício
68:
Construir
um
programa
para
apresentar todos os números divisíveis por 4 que
a média, o menor valor e o maior valor dos n valores reais lidos.
sejam menores que 20 iniciando do valor 1.
Exercício 69: Teste de consistência de dados.
Exercício 73: Elaborar um programa que leia dois
Fazer um programa que leia um valor inteiro no
números inteiros. Após a leitura, apresentar um
intervalo de 0 a 10. Se o valor não estiver neste
menu para o usuário para a escolha da operação
intervalo, dê uma mensagem e retorne para
a ser realizada, como segue abaixo. Após a
ar um novo número até que o número lido
realização da operação desejada, voltar a ler
esteja no intervalo. Quando o número lido for
novos números até que a opção 6 do menu seja
válido, apresentá-lo na tela multiplicado por 100.
selecionada. 1. Soma dos valores
Exercício 70: Faça um programa para calcular a
2. Diferença entre o maior e o menor
quantidade de dinheiro que um fumante gasta em
valor
10 dias. Entre com o número de cigarros que ele
3. Multiplicação dos valores
fumou por dia (faça isto para 10 dias, utilizando o
4. Soma do dobro de cada valor
do-while e armazenando os valores, somando-os).
5. Soma dos quadrados de cada valor
Solicite ao usuário que digite o preço do maço de
6. Fim
cigarros e divida por 20 para saber qual o valor unitário. Multiplique pelo valor totalizado de 10
Exercício
74:
Elaborar
um
programa
para
dias e apresente uma mensagem (que você vai
apuração da eleição de um determinado colégio.
criar) contendo o total de cigarros, a média de
O menu deve apresentar as seguintes opções:
cigarros por dia e o valor que ele gastou nestes 10 dias.
0. Encerra apuração 1. Voto para o candidato A
Exercício 71: Faça um programa para ler uma
2. Voto para o candidato B
sequencia de números positivos e seguido pela
3. Voto para o candidato C
leitura de um número negativo. O programa deve
4. Voto em branco
parar de ler números quando o usuário entrar com
5. Voto nulo
um
número
negativo
(condição
de
parada,
reprocessamento). O programa deve imprimir a
Fique lendo valores até que se digite zero. Neste
soma, média e quantidade dos números não
caso, informe os resultados apurados:
negativos.
Calcular o total de votos para cada candidato (Candidatos A, B ou C);
Exercício 72: Implemente um programa que deve
Calcular a quantidade de votos nulos;
ler um inteiro positivo n (quantidade de valores
Calcular a quantidade de votos em branco;
que deverá ser lida) e em seguida ler n valores
Calcular o percentual de votos em branco
reais sendo que o programa deve imprimir a soma,
Profª Ariane Scarelli / Katia Livia Zambon
e nulos em relação ao total.
Linguagem C
22
Exercício 75: Faça um programa que descubra
Digite a primeira nota: 7.9
um número entre 0 e 1000 imaginado pelo
Digite a segunda nota: 8.6
usuário. O programa deve fazer interações com o
Digite a terceira nota: 5.3
usuário. A cada interação, o programa deve tomar
Sua média é: 7.3
um número e perguntar para o usuário se este
Tem mais algum
candidato para se
número é igual, menor ou maior do que o valor
apresentar? Sim
imaginado. O usuário deve responder de forma
Digite o nome da performance que o candidato irá
correta. A execução do programa deve terminar
fazer: “Melhor impossível”
assim
que
o
programa
”adivinhar”
o
valor
Digite a primeira nota: 8.5
imaginado pelo usuário. O programa deve imprimir
Digite a segunda nota: 15.4
o número imaginado e o número de perguntas
Nota inválida, redigite!
feitas pelo programa. Seu programa não pode
Digite a segunda nota: 10.0
fazer mais que 10 perguntas. Se atingir 10
Digite a terceira nota: 7.7
perguntas
Sua média é: 8.7
e
o
valor
imaginado
não
for
“descoberto”, dê uma mensagem.
Tem mais algum
candidato para se
apresentar? Não Exercício 76: Fazer um programa que leia uma sequência de 8 notas dadas pelos juízes de um
Resposta final: A performance “Melhor impossível”
concurso de danças (as notas devem estar no
ganhou com média: 8.7
intervalo de 0 a 10 e ser do tipo real). Para o cálculo da média, retire a maior e a menor nota e apresente a média recebida pelo candidato. 10 COMANDO while Exercício 77: Faça uma modificação no programa anterior.
Agora,
teremos
vários
candidatos
Condiciona
a
repetição
de
determinadas
participando do concurso e cada um receberá 3
instruções, enquanto uma dada condição for
notas (a média agora é composta pelas 3 notas,
atendida (verdadeira).
não é necessário retirar a maior e a menor). Não sabemos quantos candidatos tem o concurso, mas
Sintaxe: while (teste)
a cada iteração, o usuário deverá responder a
instrução(ões);
pergunta: Tem mais candidatos? Sim/não e o programa
encerra
quanto
não
houver
mais
Exemplo: incrementando de 1 em 1 (comando
candidatos. Apresente no final qual candidato
while)
ganhou o concurso (obteve maior média).
int a =0; while (a <= 10)
Exemplo:
{ printf (“%d \n”,a);
Digite o nome da performance que o candidato irá fazer: “Dança do Tigre” Profª Ariane Scarelli / Katia Livia Zambon
a++; }; Linguagem C
23
EXERCÍCIOS – comando while
Exemplo: incrementando de 1 em 1 (comando for) for( int a = 0; a <= 10; a++ ) printf(“%d \n”, a);
Exercício 78: Faça um programa que apresente na tela 100 vezes a mensagem “Eu adoro estudar no CTI..... !!!!!
Exemplo: incrementando de 1 em 1 (comando
Exercício 79: Escreva um programa para somar
do-while)
todos os números pares num intervalo de 10 a 50.
int a =0; do
Exercício
80:
{
transformação
Reescreva de
o
Farenheit
programa para
de
Celsius
printf (“%d \n”,a);
imprimindo uma tabela de conversão de graus, de
a++;
0 a 120 graus, com incremento de 10 graus.
}while (a <= 10); Exercício 81: Faça um programa que apresente as opções de um menu para controle da conta bancária do usuário: (1) Consulta saldo Outro exemplo (while):
(2) Saque
int cont = 1;
(3) Depósito
while (cont <= 100)
(4) Sair
printf(“%d\n”, cont++); O saldo inicial deverá ser R$ 0,00 e a cada saque ou depósito, o saldo deverá ser atualizado. Exemplo: Outro exemplo (while):
Digite a opção: 1
/*Imprimir todos os números ímpares de 1 a 100 */
Saldo: R$ 0,00
main() {
Digite a opção: 3 int cont = 1;
Valor a ser depositado: R$ 100,00
while (cont <= 100) {
Digite a opção: 2 if (cont % 2 == 1)
Valor a ser sacado: R$ 35,00
printf(“%d\n”, cont); cont++;
Digite a opção: 1
}
Saldo: R$ 65,00
} Digite a opção: 4 Programa Encerrado !!! Profª Ariane Scarelli / Katia Livia Zambon
Linguagem C
24
Exercício 82: Faça um programa que apresente
11.1
Diretiva #define
todos os números divisíveis por um valor indicado pelo usuário, compreendidos em um intervalo que
Pode ser usada como:
também será especificado pelo usuário (valor inicial e final do intervalo serão lidos).
1. Constante simbólica Substitui no corpo do programa todas as ocorrências da constante
Exemplo:
simbólica pelo valor especificado.
Digite o valor para o divisor: 3 Digite o valor inicial do intervalo: 10
Exemplo:
Digite o valor final do intervalo: 33
/* calcula a area da esfera */
Números divisíveis por 3 no intervalo de 10 a 33:
#define PI 3.14159
12
main()
15
{
18
float raio;
21
float area;
24
printf(“Digite o raio da esfera: ”);
27
scanf(“%f”, &raio);
30
area = 4 * PI * r * r;
33
printf(“\nArea da esfera = %.2f”, area); }
11 O PRÉ-PROCESSADOR C
O valor 3.14159 substituirá cada ocorrência de PI no programa.
O Pré-processador C é um programa que examina o programa fonte em C antes da compilação e faz certas modificações nele, baseado em instruções
Exemplo:
chamadas diretivas.
#define ERRO printf(“\nValor invalido”);
Quando executa-se a seguinte linha:
main()
var = 60;
{ int var;
Solicita-se ao compilador para transformar este
printf(“Entre com o valor: “);
código para instruções em linguagem de máquina
scanf(“%d”, &var);
para que o microprocessador as execute.
if( var )
As diretivas do pré-processador são instruções para o compilador e não para o microprocessador.
ERRO; }
Devem fazer parte do texto do programa, mas não farão parte do programa que é compilado, pois
são retiradas do texto pelo compilador antes da
2. Macro
compilação.
cada vez que a macro for executada.
Profª Ariane Scarelli / Katia Livia Zambon
Linguagem C
Executa o comando especificado
25
Exemplo:
12 FUNÇÕES getch E getche
#define QUAD(x) (x)*(x) main()
Permitem
ar
um
único
caractere
pelo
{
teclado, sem a necessidade de teclar <enter>. A int a = 2;
diferença entre as duas funções é que getche
float b = 1.5;
“ecoa” o caractere digitado no vídeo e getch não.
printf(“Soma
dos
quadrados:
%f\n”,
Para usar estas funções é necessário incluir o arquivo conio.h.
QUAD(a) + QUAD(b)); }
Sintaxe:
var1 = getch() var2 = getche()
11.2
Diretiva #include
Exemplo: /* utilização das funções getch() e getche() */
Causa
a
inclusão
de
um
programa-fonte
#include
(cabeçalho) em outro. Pode-se incluir um arquivo
main()
de cabeçalho criado pelo usuário ou um já
{
existente no compilador C.
char ch, cont; do
Exemplo: arquivo stdio.h para usá-lo:
{ printf(“\ndigite
#include <stdio.h>
um
caractere
(para
encerrar tecle <enter>) “);
ou
while( ( ch = getch() ) != ‘\r’ )
#include “stdio.h”
{ printf(“\n digitado = %c”, ch);
Quando o nome do arquivo está definido entre os
printf(“\n seguinte = %c”, ch + 1);
símbolos de menor e maior, o pré-processador
printf(“\ndigite
procura primeiro no diretório especialmente criado
um
caractere
(para
encerrar tecle <enter>) “);
de inclusão (INCLUDE = ) que é definido durante a
}
instalação do compilador, e depois no diretório
printf(“\n\nContinua ? (s/n): ”);
corrente. Se o nome do arquivo está definido entre
}while((cont = getche() ) = ‘s’ || cont = ‘S’ );
aspas duplas, o pré-processador procura apenas
}
no diretório corrente.
Observação:
- Não há ponto-e-vírgula (;) após
qualquer diretiva do pré-processador.
Profª Ariane Scarelli / Katia Livia Zambon
Linguagem C
26
EXERCÍCIOS – funções getch() e getche()
printf(“digite uma letra e tecle <enter>: “); ch = getchar();
Exercício 83: Escreva um programa que conte a quantidade de caracteres de uma frase digitada
putchar(ch); }
pelo usuário. Exercício 84: Escreva um programa que conte a quantidade de caracteres e de palavras de uma frase digitada pelo usuário. 14 MANIPULAÇÃO DE STRINGS Exercício 85: Escreva um programa que solicite 3
dois caracteres ao usuário e imprima o número de
Uma string em C é definida como uma matriz do
caracteres que estão entre eles. Assuma que o
tipo char terminada pelo caractere null ('\0').
usuário digitará os 2 caracteres em ordem
Toda
alfabética. Exemplo:
encontrada no programa é considerada pelo
sequência
de
caracteres
entre
aspas
Digite 2 caracteres: c f
compilador como sendo uma constante string.
O número de caracteres entre eles é: 2
Cada caractere de uma string ocupa 1 byte de memória e o último caractere é sempre '\0'.
Exercício 86: Escreva um programa que conte a quantidade de caracteres e o número de dígitos (0
Exemplo: "Linguagem C" = | L | i | n | g | u | a | g | e
a 9) de uma frase digitada pelo usuário.
| m | | C | \0|
Através da terminação '\0', as funções identificam o fim de uma string. 13 FUNÇÕES getchar E putchar Variável string A função getchar() a um único caractere pelo teclado e espera que se tecle <enter>; a função
A variável que irá armazenar uma string deve ser
putchar() imprime um caractere na tela. Estas
declarada como tipo char, especificando o número
funções estão definidas no arquivo stdio.h.
de caracteres necessários dentro do símbolo de colchetes. Contudo, como o primeiro caractere
Sintaxe:
var = getchar()
reside no elemento 0, o número do último
putchar(var)
elemento é sempre o tamanho da string menos 1.
Exemplo:
Sintaxe:
char var[tamanho]
Exemplo:
char nome[35];
/* utilizando getchar() */ #include <stdio.h> main()
char teste[5];
{ char ch; Profª Ariane Scarelli / Katia Livia Zambon
3
Consulte o APÊNDICE C para tabela com funções de manipulação de string. Linguagem C
27
teste[0]
alfabeto[ind] = letra;
teste[1]
alfabeto[ind] = ‘\0’;
teste[2]
for( ind = 0; alfabeto[ind] != ‘\0’; ind++ )
teste[3]
putchar( alfabeto[ind] ); }
teste[4]
/* Exemplo de uso de string
*/
main()
Observações:
{
o segundo comando for testa repetidamente
char alfabeto[27]; // 26 letras mais o nulo
se o valor do elemento é um caractere nulo
char letra;
(‘\0’);
int ind;
for( letra = ‘A’, ind = 0; letra <= ‘Z’; letra++,
putchar()
exibe
o
caractere,
até
que
alfabeto[ind] contenha o caractere nulo.
ind++ ) alfabeto[ind] = letra; alfabeto[ind] = ‘\0’; // para indicar fim da
Leitura de uma string
printf (“%s”, alfabeto);
Após reservar o espaço em memória para receber
string }
a string, deve-se permitir ar um conteúdo para a mesma através do teclado.
Observações:
a variável ind reflete a posição de cada letra dentro da string, iniciando com zero;
cada iteração da repetição incrementa letra e
Uma função que permite esse o é scanf().
Exemplo: char descr[30];
ind;
scanf(“%s”, descr);
para exibir a string, a função printf() não necessita dos colchetes. Observações:
/* Exemplo de uso de string, usando getchar() */
pois o nome de uma string é seu endereço
#include <stdio.h> main()
inicial ( descr é igual a &descr[0] );
{ char alfabeto[27], letra; int ind; for( letra = ‘A’, ind = 0; letra <= ‘Z’; letra++,
o operador de endereço (&) não foi utilizado
a função scanf() identifica um espaço em branco para terminar uma entrada, assim se digitarmos para a variável descr o valor “Disco rígido”, só ficará armazenado o valor “Disco”.
ind++ )
Profª Ariane Scarelli / Katia Livia Zambon
Linguagem C
28
14.1
EXERCÍCIOS – funções gets() e puts()
FUNÇÕES gets E puts
gets() - utilizada unicamente para ler uma string
Exercício 87: Faça um programa que leia uma
pelo teclado. gets() lê caracteres até encontrar o
string pelo teclado e conte a quantidade de vogais
caracteres que indica o fim da linha (‘\n’), gerado
existentes. Imprima o resultado.
quando for digitado enter (que não fará parte da string). Ao contrário de scanf(), a função gets()
Exercício 88: Faça um programa que leia uma
aceita espaços em branco na string. Os erros de
string pelo teclado e imprima quantas e quais
digitação
foram as vogais e quantos espaços em branco
podem
ser
corrigidos
usando-se
retrocesso.
Sintaxe: gets(var);
existem. Imprima os resultados.
Exercício 89: Faça um programa que leia uma string pelo teclado e imprima-a de trás para frente.
Observação:
quando declara-se uma string de caracteres,
Exercício 90: Faça um programa que leia o
deve-se tomar o cuidade de sempre colocar
de um usuário e uma senha. Verifique se a senha
uma posição a mais, pois C coloca o
está incorreta (você deve definir no if a senha
terminador (‘\0’) para marcar o fim da string.
correta). Se não estiver correta, utilize comando de repetição e leia a senha novamente.
puts() - é a função complemento de gets(). Será utilizada quando for necessário apresentar uma string na tela. Pula uma linha automaticamente.
Sintaxe: puts(var);
14.2
FUNÇÃO stry
Copia o conteúdo de uma string em outra. Esta função está definida no arquivo string.h.
Exemplo: char nome[30];
Sintaxe: stry (string_destino, string_origem);
gets(nome); puts(“Caro amigo(a), “); puts(nome);
A função stry() copia a string_origem para a string_destino.
Exemplo: #include <stdio.h> #include <string.h> main () { char str1[100];
Profª Ariane Scarelli / Katia Livia Zambon
Linguagem C
29
char str2[100];
14.4
FUNÇÃO strlen
char str3[100]; printf ("Entre com uma string: "); gets (str1);
Retorna o número de caracteres da string. Esta função está definida no arquivo string.h.
stry (str2, str1); Sintaxe: strlen (string);
stry (str3, "Voce digitou a string "); printf ("\n\n%s%s", str3, str2);
A função strlen() retorna o comprimento da string
}
fornecida. O terminador nulo não é contado. Isto quer dizer que, de fato, o comprimento do vetor da string deve ser um a mais que o inteiro retornado por strlen(). 14.3
FUNÇÃO strcat
Anexa uma string a outra. Esta função está definida no arquivo string.h.
Exemplo: #include <stdio.h>
Sintaxe: strcat (string_destino, string_origem);
#include <string.h> main ()
A string_origem permanecerá inalterada e será
{
anexada ao fim da string_destino.
int tamanho; char str [100];
Exemplo:
printf ("Entre com uma string: ");
#include <stdio.h>
gets (str);
#include <string.h>
tamanho = strlen (str);
main ()
printf ("\n\nA string que voce digitou tem
{
tamanho %d", tamanho); char str1[100], str2[100];
}
printf ("Entre com uma string: "); gets (str1); stry (str2, "Voce digitou a string "); strcat (str2, str1); printf ("\n\n%s", str2); }
Profª Ariane Scarelli / Katia Livia Zambon
Linguagem C
30
14.5
FUNÇÃO strcmp
Exercício 93: Faça um programa que declare duas strings com capacidade para 20 caracteres.
Compara duas strings. Esta função está definida
Leia pela entrada padrão a primeira string. Em
no arquivo string.h.
seguida, copie o texto da primeira string para a segunda. Imprima no final o conteúdo das duas
Sintaxe: strcmp (string1, string2);
strings.
A função strcmp() compara a string1 com a
Exercício 94: Escreva um programa que decida
string2. Se as duas forem idênticas a função
se uma string é ou não um palíndromo (ou seja, se
retorna zero. Se elas forem diferentes a função
o inverso da string é igual a ela).
retorna não-zero. Exercício 95: Escreva um programa que leia uma Exemplo:
string e troque todos os caracteres por letras
#include <stdio.h>
maiúsculas. Verifique a função strupr().
#include <string.h> main ()
Exercício 96: Fazer um algoritmo para ler uma
{
string e contar quantas vezes um determinado char str1 [100], str2 [100];
caractere aparece na string. O caractere deverá
printf ("Entre com uma string: ");
ser informado pelo usuário. Verifique a função
gets (str1);
strchr().
printf ("\n\nEntre com outra string: "); gets (str2); if (strcmp (str1, str2) ) printf ("\n Strings são diferentes."); else
Exercício 97: Faça um programa para ler um número inteiro com 4 dígitos exatos (não pode ser com 3 ou 2 ou 1, por isso, leia-o como string,
printf ("\n Strings são iguais."); }
verifique se o tamanho da string é 4 e depois o transforme em valor numérico). Calcular e mostrar o dígito verificar do número lido, que é obtido pelo seguinte cálculo:
EXERCÍCIOS – string Sendo o número formado por: abcd a * 2 + b * 3 + c * 4 + d * 5 = soma
Exercício 91: Crie um programa capaz de ler dois nomes de pessoas e imprimi-los em ordem alfabética.
Cálculo: resto de (soma / 11). Se resto >= 10, então dígito = 1, senão dígito = resto.
Exercício 92: Faça um programa que leia o nome e o sobrenome de uma pessoa. Apresente o nome completo concatenando as strings.
Profª Ariane Scarelli / Katia Livia Zambon
Linguagem C
31
15 COMANDO switch
A opção default (verificada primeiro), é executada
O comando switch deve ser utilizado quando
caso
nenhuma
das
demais
satisfaça a expressão.
existe a necessidade de escolher uma entre várias alternativas. Estrutura tipo if-else são simples de
Exemplo:
usar quando existem no máximo duas alternativas,
/* Mostra vogais */
quando essa quantidade aumenta, a estrutura
main()
começa a ficar confusa e deselegante.
{ char letra;
Sintaxe:
for( letra = 'A'; letra <= 'Z'; letra++ )
switch( expressão )
switch( letra )
{
{ case constante_1:
case 'A': printf("%c", letra);
instruções;
break;
break;
case 'E': printf("%c", letra);
case constante_2:
break;
instruções;
case 'I': printf("%c", letra);
break;
break;
.....
case 'O': printf("%c", letra);
case constante_n:
break;
intruções;
case 'U': printf("%c", letra);
break;
break;
default:
} instruções;
}
} OU Onde: expressão: deve ser um valor inteiro ou caractere;
switch( letra )
{
Para cada case deve haver uma constante inteira ou caractere, que deve ser terminada
case 'A':
por dois-pontos (:), e não por ponto-e-vírgula (;). Para cada case pode haver uma ou mais
case 'E':
instruções. No caso de várias instruções, estas não devem estar entre chaves;
case 'I':
Para cada case deve haver uma instrução case 'O':
break que causa uma saída imediata do switch. Se o break não for especificado, o
case 'U': printf("%c", letra);
programa segue executando todos os outros casos abaixo; Profª Ariane Scarelli / Katia Livia Zambon
} Linguagem C
32
EXERCÍCIOS – comando switch
Exercício 98: Escreva um programa para contar o
REFERÊNCIAS
CASTRO, André L. F. Apostila C. [200-].
número de vezes que cada vogal aparece em uma frase digitada pelo usuário e o número de consoantes. Imprima os resultados.
JAMSA, Kris. Microsoft C, dicas, segredos e truques. São Paulo: Makron Books, 1992, 701p. MIZRAHI,
Exercício 99: Escreva um programa para montar uma
calculadora
com
as
4
operações
Victorine
V.
Treinamento
linguagem C, curso completo. São Paulo: McGraw-Hill, 1990. (Módulo 1). 241p.
matemáticas. Observação:
O usuário deverá digitar os valores e o tipo de
______.______. São Paulo: McGraw-Hill, 1990. (Módulo 2). 273p.
operação desejada;
Utilizar reprocessamento, encerrando quando usuário digitar N à pergunta "Continua ? (S/N)";
Exercício 100: Faça um programa no qual o usuário deverá entrar com uma das opções uma das opções do menu para a escolha do tipo de filme que gosta de assistir e a sua idade. Faça esta pesquisa para 10 usuários: (a) Comédia (b) Romance (c) Terror (d) Aventura (e) Ação (f) Ficção Apresente no final cada gênero de filme e a média das idades dos usuários para cada seleção.
Profª Ariane Scarelli / Katia Livia Zambon
em
Linguagem C
33
16 APÊNDICES APÊNDICE A – Tipos de Dados em C O C tem 5 tipos básicos: char, int, float, double, void. O double é o ponto flutuante duplo e pode ser visto como um ponto flutuante com muito mais precisão. O void é um tipo especial que significa vazio em inglês.
Tipo char unsigned char signed char int unsigned int signed int short int unsigned short int signed short int long int signed long int unsigned long int float double long double
Nº bits 8 8
Inicio -128 0
Intervalo Fim 127 255
8
-128
127
16 16
-32.768 0
32.767 65.535
16 16 16
-32.768 -32.768 0
32.767 32.767 65.535
16
-32.768
32.767
32 32
-2.147.483.648 -2.147.483.648
2.147.483.647 2.147.483.647
32
0
4.294.967.295
32 64 80
3,4E-38 1,7E-308 3,4E-4932
3.4E+38 1,7E+308 3,4E+4932
O tipo long double é o tipo de ponto flutuante com
maior
precisão.
É
importante
observar que os intervalos de ponto flutuante, na tabela acima, estão indicados em faixa de expoente, mas os números podem assumir valores tanto positivos quanto negativos.
Profª Ariane Scarelli / Katia Livia Zambon
Linguagem C
34
APÊNDICE B – Device Driver ANSI.SYS
Manipulando o Vídeo Sequência
Sob o DOS, o device driver (controlador de dispositivo) ANSI.SYS fornece expansão das capacidades da tela e teclado, utilizando um
“\x1B[2J”
interceptado for uma sequência especial de caracteres que identificam um comando para o
esquerdo. “\x1B[#;#H” Define linha e “\x1B[#A” “\x1B[#B” “\x1B[#C”
Move o cursor #
printf(“\x1B[3A”);
Move o cursor #
printf(“\x1B[10B”);
Move o cursor #
printf(“\x1B[6C”);
Move o cursor #
printf(“\x1B[11D”);
colunas à
O driver ANSI.SYS deve estar instalado no
esquerda
CONFIG.SYS. “\x1B[s”
printf(“\x1B[s”);
Retorna o cursor
printf(“\x1B[u”);
à posição
informa que os 2 próximos
anterior
caracteres formam um valor hexadecimal. “\x1B[K”
Limpa até o final
printf(“\x1B[K”);
da linha atual
1B[ identifica um código ANSI. 2J identifica a ação (limpa a tela e posiciona o
Salva posição atual do cursor
“\x1B[2J” “\x1B[u”
Onde: \x
;
colunas à direita “\x1B[#D”
Exemplo:
coluna do cursor
linhas abaixo
caracteres inicializada por ESCAPE (1B em hexa) + [.
printf(“\x1B[5;10H”)
linhas acima
Os comandos para o driver ANSI.SYS são identificados por uma sequência especial de
printf(“\x1B[2J”);
canto superior
driver, ele é ado para sua parte de processamento de comando.
Limpa tela e posiciona no
Standards Institute (ANSI).
na tela e a entrada do teclado e, se algum código
Exemplo
de Escape
código padronizado pelo American National
O driver ANSI.SYS intercepta toda saída
Função
“\x1B[#m”
Define cor de
printf(“\x1B[41m”);
primeiro plano e
cursor no canto superior esquerdo do vídeo).
fundo main() Utilizando Cores
{ printf(“\x1B[2J”); }
Profª Ariane Scarelli / Katia Livia Zambon
Valor
Cor de Primeiro Plano
30
Preto
31
Vermelho
32
Verde
33
Laranja
34
Azul
35
Magenta
Linguagem C
35
Como fazer para ativar o device driver
36
Ciano
37
Branco
ANSI.SYS no prompt de comando do Windows
Valor
Cor de Fundo
XP, Vista.
40
Preto
41
Vermelho
42
Verde
43
Laranja
44
Azul
45
Magenta
46
Ciano
47
Branco
Exemplo:
main()
os: 1
Abra (edite) o arquivo CONFIG.NT (que substituiu o antigo CONFIG.SYS), localizado em c:\windows\system32
2
Insira a seguinte linha: device= c:\windows\system32\ansi.sys (ou device= %SystemRoot%\system32\ansi.sys)
3
Salve o arquivo com as alterações
4
Reinicie o computador
5
Na próxima vez que executar o prompt de comando do Windows (CMD) ou o atalho do
{
Turbo C++ O driver ANSI.SYS interceptará printf(“\x1B[43mFUNDO LARANJA”);
toda saída na tela e entrada do teclado
printf(“\x1B[31mVERMELHO\x1B[37mBRA NCO\x1B[34mAZUL”); }
Onde: o m minúsculo é a sequência de escape que diz ao driver ANSI que o número precedente é a cor escolhida para ser mostrada no vídeo, como primeiro plano ou fundo, dependendo do valor.
Profª Ariane Scarelli / Katia Livia Zambon
Linguagem C
36
APÊNDICE C – Tabela de Rotinas de Manipulação de String Uma
das
principais
atividades
de
de duas strings, ignorando diferenças entre maiúsculas e
muitos
minúsculas strnset
programas em C é manipulação de strings. Por
da string com um caractere
exemplo, programas frequentemente precisam comparar duas strings, pesquisar palavra em
Inicializa os primeiros n caracteres
especificado strpbrk
Localiza o primeiro caractere da
string, anexar conteúdo em string. O arquivo de
primeira string que também está na
inclusão string.h contém a declaração das funções
segunda
de manipulação de string em C. A tabela abaixo
strrchr
letra na string
apresenta a lista de rotinas: strrev Nome da Rotina
Descrição
strcat
Anexa uma string a outra
strchr
Pesquisa uma string pela primeira ocorrência de uma letra
strcmp
Compara duas strings
strcmpi
Compara duas strings. Ignorando diferenças entre maiúsculas e minúsculas
stry
strset
strspn
Aloca memória e copia uma string
strerror
Devolve uma mensagem de erro associada à última chamada à rotina
conjunto de caracteres da segunda string strstr
stricmp
Retorna um ponteiro com a localização da segunda string dentro da primeira, ou NULL se a string não existir
strtod
Converte uma string para um valor decimal
strtol
Converte uma string para um valor long
strtoul
da bilbioteca run-time que produziu o erro
Retorna o primeiro caractere da primeira string que não está no
string que está na segunda string strdup
Define todos os caracteres de uma string com uma letra específica
Copia o conteúdo de uma string em
Devolve a primeira letra de uma
Reverte a ordem das letras em uma string
outra strcspn
Localiza a última ocorrência de uma
Converte uma string para um valor unsigned long
strupr
Converte uma string para maiúscula
Compara duas strings, ignorando diferenças entre maiúsculas e minúsculas
strlen
Retorna o número de caracteres da string
strlwr
Converte uma string para minúscula
strncat
Anexa n caracteres em uma string
strncmp
Compara os primeiros n caracteres de duas strings
strny
Copia os primeiros n caracteres de uma string em outra
strnicmp
Compara os primeiros n caracteres
Profª Ariane Scarelli / Katia Livia Zambon
Linguagem C
37