Aula 23 – String – Programação em C
Código 11 – String e a biblioteca string.h
Esse é um programa bem simples e curto, ele irá fazer uma saudação ao usuário, dando bom dia para ele.
- Vamos aprender um pouco sobre string, que na verdade é um vetor (array) de caracteres.
- Vamos usar as funções gets ( ) e puts( ) da biblioteca string.h e ver como funcionam.
Mas antes, algumas observações relativas a strings.
String em C é um array de char, na aula passada vimos um exemplo de array de inteiros.
Um char é representado com 1 byte, ou seja, 8 bits, ao contrário do inteiro que vimos na aula 22, que é representado pos 4 bytes, isto é, 32 bits.
É possível codificar até 256 caracteres distintos com 1 byte.
A linguagem C utiliza números como índices para símbolos na tabela ASCII.
Assim como para um numero int utilizamos o ‘%d’, para um float ‘%f’, para um char é utilizado o ‘%c’ no scanf e no printf e para string, isto é, para um vetor completo de char, utilizamos o ‘%s’.
Vetor de inteiros
Vetor de char
Problema:
- Como determinar a quantidade de caracteres válidos que há no vetor que armazena a string?
Solução em C:
- Uma string é uma seqüência de letras, números ou símbolos onde o último caractere é obrigatoriamente caractere ‘\0’ (da mesma família do ‘\n’, ‘\t’ … )
String em C, é um array de char (uma matriz unidimensional) terminada pelo caractere null: ‘\0’.
Cada caractere de uma string pode ser acessado individualmente, assim como vimos no exemplo do vetor de inteiros da aula 22.
Vetor de tamanho n string de tamanho ( n-1 ) por causa do caractere null, o ‘\0’.
//Exemplos de declaração e atribuição de um vetor de char
char string[10] = "exemplo" ;
char string[10] = {"exemplo" };
char string[10] = {'e', 'x', 'e', 'm', 'p', 'l', 'o', '\0' };
printf ("%s", string );
printf ("%c %c", string [ 0 ], string[1] );
Código 11 com scanf( ) e printf( )
#include <stdio.h>/*Instrução de pré-processamento, habilita nosso programa a usar essa biblioteca de entradas e saídas, possui funções como scanf e printf*/ #include <stdlib.h>/*Instrução de pré-processamento, habilita nosso programa a usar essa biblioteca, para poder usar o system("PAUSE"); */ #include <locale.h>/*Instrução de pré-processamento, habilita nosso programa a usar essa biblioteca, para usar caracteres como: ç, Ç, Â ,â etc. No printf( )*/ void main (void) { char nome[11]; printf ("Digite seu nome: " ); scanf ("%s", nome ); printf ("Bom dia %s", nome ); system("PAUSE"); }
Código 11 com gets( ) e puts( )
#include <stdio.h>/* Instrução de pré-processamento, habilita nosso programa a usar essa biblioteca de entradas e saídas, possui funções como scanf e printf*/ #include <stdlib.h>/*Instrução de pré-processamento, habilita nosso programa a usar essa biblioteca, para poder usar o system("PAUSE"); */ #include <locale.h>/*Instrução de pré-processamento, habilita nosso programa a usar essa biblioteca, para usar caracteres como: ç, Ç, Â ,â etc. No printf( )*/ void main (void) { char nome[11]; printf ("Digite seu nome: " ); gets ( nome ); puts ("Bom dia"); puts (nome); }