Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Linguagem C

Strings em C: Dominando Declaração, Inicialização e Entrada/Saída

Strings em C

Este tutorial aborda os fundamentos das strings em C: declaração, inicialização, entrada/saída, uso de funções, ponteiros e funções essenciais da biblioteca padrão.

Em C, uma string é um array de caracteres terminado por um byte nulo \0. Por exemplo:

char c[] = "string em C";

O compilador adiciona automaticamente \0 a um literal de string, tornando-o uma string C válida.


Como declarar uma string?

Strings são declaradas como arrays de caracteres. Por exemplo:

char s[5];

Isso declara um buffer que pode armazenar até 4 caracteres mais o terminador \0.


Como inicializar strings?

Vários estilos de inicialização estão disponíveis:

char c[] = "abcd"; char c[50] = "abcd"; char c[] = {'a', 'b', 'c', 'd', '\0'}; char c[5] = {'a', 'b', 'c', 'd', '\0'};

Cuidado com estouro de buffer: char c[5] = "abcde"; tenta armazenar seis caracteres (incluindo \0) em um array de cinco bytes e deve ser evitado.


Atribuindo valores a strings

Arrays não podem ser atribuídos após a declaração. Em vez disso, use strcpy():

char c[100]; strcpy(c, "Programação em C");

Nota: Atribuição direta como c = "Programação em C"; causa erro de compilação.


Lendo strings do usuário

Use scanf() para entrada delimitada por espaços:

#include <stdio.h> int main() { char nome[20]; printf("Digite o nome: "); scanf("%s", nome); printf("Seu nome é %s.", nome); return 0; }

Saída

Digite o nome: Dennis Ritchie Seu nome é Dennis.

Apenas a primeira palavra é capturada porque scanf() para no espaço em branco. O nome do array decai para um ponteiro, então nome é passado diretamente.

Como ler uma linha inteira?

Use fgets() e puts():

#include <stdio.h> int main() { char nome[30]; printf("Digite o nome: "); fgets(name, sizeof(nome), stdin); printf("Nome: "); puts(nome); return 0; }

Saída

Digite o nome: Tom Hanks Nome: Tom Hanks

fgets() lê até sizeof(nome)-1 caracteres, incluindo espaços. Também mantém a nova linha final, que puts() imprime.

Nota: gets() é obsoleta e foi removida do padrão C porque pode estourar buffers.


Passando strings para funções

Strings são passadas para funções como arrays. Exemplo:

#include <stdio.h> void exibirString(char str[]); int main() { char str[50]; printf("Digite a string: "); fgets(str, sizeof(str), stdin); exibirString(str); return 0; } void exibirString(char str[]) { printf("Saída da string: "); puts(str); }

Strings e ponteiros

Nomes de strings decaem para ponteiros, permitindo aritmética de ponteiros:

#include <stdio.h> int main(void) { char nome[] = "Harry Potter"; printf("%c", *nome); // H printf("%c", *(nome+1)); // a printf("%c", *(nome+7)); // o char *ptrNome = nome; printf("%c", *ptrNome); // H printf("%c", *(ptrNome+1)); // a printf("%c", *(ptrNome+7)); // o }

Funções de string comumente usadas

Linguagem C

  1. Dominando Strings em C#: Fundamentos, Operações e Técnicas Avançadas
  2. Dominando Namespaces em C#: Organização, Escopo e Boas Práticas
  3. Como Passar Arrays para Funções em C++: Guia Prático
  4. Dominando Strings em Java: Criação, Métodos e Boas Práticas
  5. Dominando Representações String em Enums Java
  6. Dominando Funções de String em C++: strcpy, strcat, strlen, strcmp – Exemplos Práticos
  7. Strings em C Facilitadas: Declaração, Entrada, Saída e Funções da Biblioteca
  8. Domine Operações com Strings em Python: Replace, Join, Split, Reverse e Conversão de Case
  9. Domine a Programação em C: Tutorial Completo para Iniciantes
  10. Classe String em Java: Dominando a Criação e Manipulação de Strings