Strings em C (com exemplos)

Neste tutorial, você aprenderá sobre strings em programação C. Você aprenderá a declará-los, inicializá-los e usá-los para várias operações de E / S com a ajuda de exemplos.

Na programação C, uma string é uma sequência de caracteres terminada com um caractere nulo . Por exemplo:

 char c() = "c string"; 

Quando o compilador encontra uma sequência de caracteres entre aspas duplas, ele acrescenta um caractere nulo no final por padrão.

Como declarar uma string?

Veja como você pode declarar strings:

 char s(5); 

Aqui, declaramos uma string de 5 caracteres.

Como inicializar strings?

Você pode inicializar strings de várias maneiras.

 char c() = "abcd"; char c(50) = "abcd"; char c() = ('a', 'b', 'c', 'd', ''); char c(5) = ('a', 'b', 'c', 'd', ''); 

Vamos dar outro exemplo:

 char c(5) = "abcde";

Aqui, estamos tentando atribuir 6 caracteres (o último caractere é '') a uma charmatriz de 5 caracteres. Isso é ruim e você nunca deve fazer isso.

Atribuição de valores a strings

Arrays e strings são cidadãos de segunda classe em C; eles não suportam o operador de atribuição uma vez declarado. Por exemplo,

 char c(100); c = "C programming"; // Error! array type is not assignable.

Nota: Use a função strcpy () para copiar a string.

Ler String do usuário

Você pode usar a scanf()função para ler uma string.

A scanf()função lê a sequência de caracteres até encontrar espaços em branco (espaço, nova linha, tabulação, etc.).

Exemplo 1: scanf () para ler uma string

 #include int main() ( char name(20); printf("Enter name: "); scanf("%s", name); printf("Your name is %s.", name); return 0; ) 

Resultado

 Digite o nome: Dennis Ritchie Seu nome é Dennis.

Embora Dennis Ritchie tenha sido inserido no programa acima, apenas "Dennis" foi armazenado na string de nome. É porque havia um espaço depois de Dennis.

Como ler uma linha de texto?

Você pode usar a fgets()função para ler uma linha de string. E você pode usar puts()para exibir a string.

Exemplo 2: fgets () e puts ()

 #include int main() ( char name(30); printf("Enter name: "); fgets(name, sizeof(name), stdin); // read string printf("Name: "); puts(name); // display string return 0; ) 

Resultado

 Digite o nome: Tom Hanks Nome: Tom Hanks 

Aqui, usamos a fgets()função para ler uma string do usuário.

fgets(name, sizeof(name), stdlin); // read string

Os sizeof(name)resultados são 30. Portanto, podemos pegar no máximo 30 caracteres como entrada, que é o tamanho da string do nome.

Para imprimir a string, nós usamos puts(name);.

Nota: A gets()função também pode ser para obter informações do usuário. No entanto, ele é removido do padrão C.
É porque gets()permite que você insira qualquer comprimento de caracteres. Portanto, pode haver um estouro de buffer.

Passando Strings para Funções

Strings podem ser passados ​​para uma função de maneira semelhante aos arrays. Saiba mais sobre como passar matrizes para uma função.

Exemplo 3: Passando string para uma função

 #include void displayString(char str()); int main() ( char str(50); printf("Enter string: "); fgets(str, sizeof(str), stdin); displayString(str); // Passing string to a function. return 0; ) void displayString(char str()) ( printf("String Output: "); puts(str); ) 

Strings and Pointers

Semelhante a matrizes, nomes de string são "decaídos" para ponteiros. Portanto, você pode usar ponteiros para manipular elementos da string. Recomendamos que você verifique Arrays e ponteiros C antes de verificar este exemplo.

Exemplo 4: Strings e Ponteiros

 #include int main(void) ( char name() = "Harry Potter"; printf("%c", *name); // Output: H printf("%c", *(name+1)); // Output: a printf("%c", *(name+7)); // Output: o char *namePtr; namePtr = name; printf("%c", *namePtr); // Output: H printf("%c", *(namePtr+1)); // Output: a printf("%c", *(namePtr+7)); // Output: o )

Funções de string comumente usadas

  • strlen () - calcula o comprimento de uma string
  • strcpy () - copia uma string para outra
  • strcmp () - compara duas strings
  • strcat () - concatena duas strings

Artigos interessantes...