Para entendermos como funciona uma string de caracteres, na linguagem c, é muito importante compreender como os caracteres são representados pelo computador, como a linguagem c é uma linguagem compilada e não interpretada temos que trabalhar com strings pensando na forma que o computador C a interpreta. A linguagem C considera os caracteres como números que vão de 0 até 127, enumerados segundo a tabela ASCII, assim:
char exemplo = 61;
printf("61 em C é : %c\n",exemplo );
O programa mostraria : 61 em C é igual a : a
Talvez você quererá atribuir números a um elemento char, então existe 2 formas de fazer isso:
char exemplo = '1'; OU char exemplo = 31;
em ambos os casos mostram o valor 1.
Mais com o aumento dos nosso programas trabalhar com caracteres únicos tornar-se inviável, então podemos criar um vetor de caracteres denominados strings que nada mais é que um espaço de memoria que contem vários caracteres em fila, como por exemplo:
Athos André peixe Cachorro
Então se pensarmos um pouco veremos que string nada mais é do que caracteres agrupados e que termina com o caractere '\0', indicando o final da string. No exemplo abaixo declararmos uma string de 10 caracteres + um caractere terminador '\0', pois o primeiro índice inicia em 0.
char string[10];
No segundo exemplo o compilador sobrescreve o U pois o terminador '\0' é sempre colocado.
#include <stdio.h>
int main () {
char string[1]="EU";
printf("%s\n",string);
return 0;
}
Uma string possui índices e é com esse índices que iremos trabalhar: como por exemplo o meu nome.
0-F
1-e
2-r
3-n
4-a
5-n
6-d
7-o
8-'\0'
Então se quisermos ler uma string temos que fazer o seguinte:
char string[ //defina o tamanho aqui];
int i;
while(i<//tamanho da string){
scanf(" %[^ \n]",string[i] );
}
Mais se quisermos ler varias strings temos que criar uma matriz de caractere, e para isso precisamos de de dois índices, onde o primeiro representa a linha e o segundo representa a coluna:
0123456789
0 fernando'\0'
1 athos'\0'
2 andré'\0'
3 leticia '\0'
Como exemplo podemos fazer o seguinte:
int i,j;
char string [//aqui vc coloca o numero de palavras que sua matriz tem ] [// aqui vai o maior numero de carceres que vai na string];
for(i=0;i<linhas;i++){
bons estudos!
Nenhum comentário:
Postar um comentário