Strings de programação C
Strings de programação em C
Neste tutorial, você aprenderá sobre strings na 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 \0
. Por exemplo:
char c[] = "c string";
Quando o compilador encontra uma sequência de caracteres entre aspas duplas, ele anexa um caractere nulo
\0
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', '\0'};
char c[5] = {'a', 'b', 'c', 'd', '\0'};
Vamos a outro exemplo:
char c[5] = "abcde";
Aqui, estamos tentando atribuir 6 caracteres (o último caractere é
'\0'
) para um char
array com 5 caracteres. Isso é ruim e você nunca deve fazer isso. Atribuindo valores a strings
Arrays e strings são cidadãos de segunda classe em C; eles não suportam o operador de atribuição depois que ele é declarado. Por exemplo,
char c[100];
c = "C programming"; // Error! array type is not assignable.
Observação: Use a função strcpy() para copiar a string.
Ler String do usuário
Você pode usar o
scanf()
função para ler uma string. O
scanf()
função lê a sequência de caracteres até encontrar um espaço em branco (espaço, nova linha, tabulação, etc.). Exemplo 1:scanf() para ler uma string
#include <stdio.h>
int main()
{
char name[20];
printf("Enter name: ");
scanf("%s", name);
printf("Your name is %s.", name);
return 0;
}
Saída
Enter name: Dennis Ritchie Your name is Dennis.
Apesar de Dennis Ritchie foi inserido no programa acima, apenas "Dennis" foi armazenado no nome corda. É porque havia um espaço depois de Dennis .
Observe também que usamos o código name em vez de
&name
com scanf()
.
scanf("%s", name);
Isso ocorre porque nome é um
char
array, e sabemos que os nomes dos arrays decaem para ponteiros em C. Assim, o nome em
scanf()
já aponta para o endereço do primeiro elemento da string, e é por isso que não precisamos usar &
. Como ler uma linha de texto?
Você pode usar o
fgets()
função para ler uma linha de string. E você pode usar puts()
para exibir a sequência. Exemplo 2:fgets() e puts()
#include <stdio.h>
int main()
{
char name[30];
printf("Enter name: ");
fgets(name, sizeof(name), stdin); // read string
printf("Name: ");
puts(name); // display string
return 0;
}
Saída
Enter name: Tom Hanks Name: Tom Hanks
Aqui, usamos
fgets()
função para ler uma string do usuário. fgets(name, sizeof(name), stdlin); // read string
O
sizeof(name)
resultados para 30. Portanto, podemos usar no máximo 30 caracteres como entrada, que é o tamanho do nome corda. Para imprimir a string, usamos
puts(name);
. Observação: O
gets()
A função também pode ser receber entrada 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 passadas para uma função de maneira semelhante a arrays. Saiba mais sobre como passar arrays para uma função.
Exemplo 3:Passando string para uma função
#include <stdio.h>
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 e ponteiros
Semelhante a arrays, nomes de strings são "decaídos" para ponteiros. Portanto, você pode usar ponteiros para manipular elementos da string. Recomendamos que você verifique C Arrays e Ponteiros antes de verificar este exemplo.
Exemplo 4:strings e ponteiros
#include <stdio.h>
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
Linguagem C
- Cadeia C#
- Namespaces na programação C#
- Passando array para uma função na programação C++
- Strings Java
- Java enum Strings
- Strings C++:strcpy(), strcat(), strlen(), strcmp() EXEMPLOS
- Strings em C:como declarar variável, inicializar, imprimir, exemplo
- Strings Python:Substituir, Unir, Dividir, Reverter, Maiúsculas e Minúsculas
- C Tutorial
- Java - Classe de Strings