strings
Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
— | strings [2023/09/12 16:14] (atual) – criada - edição externa 127.0.0.1 | ||
---|---|---|---|
Linha 1: | Linha 1: | ||
+ | ====== | ||
+ | ===== Implementação de Strings ===== | ||
+ | A linguagem C implementa o conceito de cadeia de caracteres, ou strings, utilizando um [[vetor_matriz|vetor]] de caracteres. Ao se definir uma string portanto deve-se definir um [[vetor_matriz|vetor]] de caracteres com determinado tamanho. | ||
+ | |||
+ | A marcação do fim da string será indicada através da colocação de um caractere zerado, chamado tecnicamente de caractere'' | ||
+ | Como a string deve ser terminada por um caractere '' | ||
+ | |||
+ | Para se imprimir uma string deve-se ser utilizador o formato [[tipos_dados|‘%s’]]. | ||
+ | |||
+ | <code c> | ||
+ | /* strings.c */ | ||
+ | #include < | ||
+ | #include < | ||
+ | |||
+ | int main(void) | ||
+ | { | ||
+ | /* A definição é idêntica a um vetor, neste caso têm-se 39 posições para caracteres (o último é reservado para o \0) */ | ||
+ | char sNome [40] = " | ||
+ | |||
+ | | ||
+ | | ||
+ | |||
+ | /* Este comando " | ||
+ | | ||
+ | |||
+ | | ||
+ | /* o operador sizeof mostrará o tamanho reservado para a string e não o seu tamanho atual */ | ||
+ | | ||
+ | |||
+ | | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ===== Entrada e Saída de Strings ===== | ||
+ | Para se realizar a entrada de strings pode-se utilizar a função [[scanf]], usando como formato o [[tipos_dados|‘%s’]]. Um detalhe importante sobre esta forma de entrada de string é o fato de somente ser lido a seqüência de caracteres até ser encontrado um branco, não sendo possível ler caracteres brancos para uma variável usando o [[scanf]]. | ||
+ | |||
+ | Uma maneira mais útil de se fazer á leitura de strings do terminal é utilizar a função [[gets]]. Esta função lê toda a linha e coloca o conteúdo na variável indicada, permitindo assim a entrada de caracteres em branco para dentro da cadeia. | ||
+ | |||
+ | É de inteira responsabilidade do programador reservar espaço suficiente na variável para ser realizada a entrada de dados. Caso entre mais caracteres que o reservado ocorrerá invasão de memória cancelando o programa. Para realizar a saída de uma string, pode-se utilizar a função [[printf]] com o formato [[tipos_dados|‘%s’]] ou a função específica [[puts]]. | ||
+ | |||
+ | <code c> | ||
+ | /* strings_es.c */ | ||
+ | #include < | ||
+ | #include < | ||
+ | |||
+ | int main (void) | ||
+ | { | ||
+ | char sNome [30]; | ||
+ | char sFrase [100]; | ||
+ | |||
+ | | ||
+ | |||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ===== String como vetor ===== | ||
+ | Devido ao fato de uma string ser implementado como um [[vetor_matriz|vetor]] de caracteres, nada impede que se faça o acesso a string utilizando índices, acessando assim cada caractere da string de maneira individual. | ||
+ | |||
+ | <code c> | ||
+ | /* string_vetor.c */ | ||
+ | #include < | ||
+ | #include < | ||
+ | |||
+ | int main (void) | ||
+ | { | ||
+ | char sNome[40]; | ||
+ | | ||
+ | |||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | for (i=0; i < strlen(sNome); | ||
+ | { | ||
+ | putchar(sNome[i]); | ||
+ | } | ||
+ | | ||
+ | |||
+ | | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Funções ===== | ||
+ | * [[strlen]] - tamanho de um string | ||
+ | * [[strcat]] e [[strncat]] - concatena uma string | ||
+ | * [[strcpy]] e [[strncpy]] - copia uma string para outra | ||
+ | * [[strcmp]] e [[strncmp]] - comparação de strings | ||
+ | * [[sprintf]] e [[snprintf]] - impressão em strings | ||
+ | * [[sscanf]] - leitura em strings | ||
+ | |||
+ | --- // |
strings.txt · Última modificação: 2023/09/12 16:14 por 127.0.0.1