Strings em C: como declarar variável, inicializar, imprimir, exemplo

Índice:

Anonim

O que é String em C?

Uma String em C nada mais é do que uma coleção de caracteres em uma seqüência linear. 'C' sempre trata uma string como um único dado, embora contenha espaços em branco. Um único caractere é definido usando a representação de aspas simples. Uma string é representada por aspas duplas.

Example, "Welcome to the world of programming!"

'C' fornece a biblioteca padrão que contém muitas funções que podem ser usadas para realizar operações complicadas facilmente em Strings em C.

Neste tutorial, você aprenderá-

  • Como declarar e inicializar uma string em C
  • Entrada de string: leia uma string
  • Saída de string: imprimir / exibir uma string
    • função fputs ()
    • coloca a função
  • A biblioteca de cordas
  • Convertendo uma String em um Número

Como declarar e inicializar uma string em C

AC String é uma matriz simples com char como tipo de dados. A linguagem 'C' não suporta diretamente string como um tipo de dados. Portanto, para exibir uma String em C, você precisa fazer uso de uma matriz de caracteres.

A sintaxe geral para declarar uma variável como String em C é a seguinte,

char string_variable_name [array_size];

A declaração clássica de strings pode ser feita da seguinte forma:

 char string_name[string_length] = "string"; 

O tamanho de um array deve ser definido ao declarar uma variável C String porque é usado para calcular quantos caracteres serão armazenados dentro da variável string em C. Alguns exemplos válidos de declaração de string são os seguintes,

char first_name[15]; //declaration of a string variablechar last_name[15];

O exemplo acima representa variáveis ​​de string com um tamanho de array de 15. Isso significa que o array de string C fornecido é capaz de conter 15 caracteres no máximo. A indexação da matriz começa em 0, portanto, ela armazenará caracteres de uma posição 0-14. O compilador C adiciona automaticamente um caractere NULL '\ 0' à matriz de caracteres criada.

Vamos estudar a inicialização de String em C. O exemplo a seguir demonstra a inicialização de Strings em C,

char first_name[15] = "ANTHONY";char first_name[15] = {'A','N','T','H','O','N','Y','\0'}; // NULL character '\0' is required at end in this declarationchar string1 [6] = "hello";/* string size = 'h'+'e'+'l'+'l'+'o'+"NULL" = 6 */char string2 [ ] = "world"; /* string size = 'w'+'o'+'r'+'l'+'d'+"NULL" = 6 */char string3[6] = {'h', 'e', 'l', 'l', 'o', '\0'} ; /*Declaration as set of characters ,Size 6*/

Na string3, o caractere NULL deve ser adicionado explicitamente e os caracteres são colocados entre aspas simples.

'C' também nos permite inicializar uma variável de string sem definir o tamanho da matriz de caracteres. Isso pode ser feito da seguinte maneira,

char first_name[ ] = "NATHAN";

O nome de Strings em C atua como um ponteiro porque é basicamente um array.

Entrada de string: leia uma string

Ao escrever programas interativos que pedem entrada do usuário, C fornece as funções scanf (), gets () e fgets () para localizar uma linha de texto inserida pelo usuário.

Quando usamos scanf () para ler, usamos o especificador de formato "% s" sem usar o "&" para acessar o endereço da variável porque um nome de array atua como um ponteiro. Por exemplo:

#include int main() {char name[10];int age;printf("Enter your first name and age: \n");scanf("%s %d", name, &age);printf("You entered: %s %d",name,age);}

Resultado:

Enter your first name and age:John_Smith 48

O problema com a função scanf é que ela nunca lê Strings inteiras em C. Ela irá parar o processo de leitura assim que ocorrer um espaço em branco, avanço de formulário, tabulação vertical, nova linha ou retorno de carro. Suponha que forneçamos a entrada como "Tutoriais Guru99", então a função scanf nunca lerá uma string inteira porque um caractere de espaço em branco ocorre entre os dois nomes. A função scanf lerá apenas Guru99.

Para ler uma string que contém espaços, usamos a função gets (). Gets ignora os espaços em branco. Ele para de ler quando uma nova linha é alcançada (a tecla Enter é pressionada). Por exemplo:

#include int main() {char full_name[25];printf("Enter your full name: ");gets(full_name);printf("My full name is %s ",full_name);return 0;}

Resultado:

Enter your full name: Dennis RitchieMy full name is Dennis Ritchie

Outra alternativa mais segura para gets () é a função fgets () que lê um determinado número de caracteres. Por exemplo:

#include int main() {char name[10];printf("Enter your name plz: ");fgets(name, 10, stdin);printf("My name is %s ",name);return 0;}

Resultado:

Enter your name plz: CarlosMy name is Carlos

Os argumentos fgets () são:

  • o nome da string,
  • o número de caracteres para ler,
  • stdin significa ler a entrada padrão que é o teclado.

Saída de string: imprimir / exibir uma string

A função padrão printf é usada para imprimir ou exibir Strings em C em um dispositivo de saída. O especificador de formato usado é% s

Exemplo,

printf("%s", name);

A saída da string é feita com as funções fputs () e printf ().

função fputs ()

O fputs () precisa do nome da string e um ponteiro para onde você deseja exibir o texto. Usamos stdout, que se refere à saída padrão para imprimir na tela. Por exemplo:

#include int main(){char town[40];printf("Enter your town: ");gets(town);fputs(town, stdout);return 0;}

Resultado:

Enter your town: New YorkNew York

coloca a função

A função puts é usada para imprimir string em C em um dispositivo de saída e mover o cursor de volta para a primeira posição. Uma função puts pode ser usada da seguinte maneira,

#include int main() {char name[15];gets(name); //reads a stringputs(name); //displays a stringreturn 0;}

A sintaxe desta função é comparativamente simples do que outras funções.

A biblioteca de cordas

A biblioteca padrão 'C' fornece várias funções para manipular as strings dentro de um programa. Essas funções também são chamadas de manipuladores de strings. Todos esses manipuladores estão presentes dentro do arquivo de cabeçalho .

Função Propósito
strlen () Esta função é usada para encontrar o comprimento de uma string. Ele retorna quantos caracteres estão presentes em uma string, excluindo o caractere NULL.
strcat (str1, str2) Esta função é usada para combinar duas strings para formar uma única string. Ele acrescenta ou concatena str2 ao final de str1 e retorna um ponteiro para str1.
strcmp (str1, str2) Esta função é usada para comparar duas strings uma com a outra. Retorna 0 se str1 for igual a str2, menor que 0 se str1 str2.

Vamos considerar o programa abaixo, que demonstra as funções da biblioteca de strings:

#include #include int main () {//string initializationchar string1[15]="Hello";char string2[15]=" World!";char string3[15];int val;//string comparisonval= strcmp(string1,string2);if(val==0){printf("Strings are equal\n");}else{printf("Strings are not equal\n");}//string concatenationprintf("Concatenated string:%s",strcat(string1,string2)); //string1 contains hello world!//string lengthprintf("\nLength of first string:%d",strlen(string1));printf("\nLength of second string:%d",strlen(string2));//string copyprintf("\nCopied string is:%s\n",strcpy(string3,string1)); //string1 is copied into string3return 0;}

Resultado:

Strings are not equalConcatenated string:Hello World!Length of first string:12Length of second string:7Copied string is:Hello World!

Outras funções importantes da biblioteca são:

  • strncmp (str1, str2, n): retorna 0 se os primeiros n caracteres de str1 forem iguais aos primeiros n caracteres de str2, menor que 0 se str1 str2.
  • strncpy (str1, str2, n) Esta função é usada para copiar uma string de outra string. Copia os primeiros n caracteres de str2 para str1
  • strchr (str1, c): retorna um ponteiro para a primeira ocorrência de char c em str1, ou NULL se o caractere não for encontrado.
  • strrchr (str1, c): pesquisa str1 ao contrário e retorna um ponteiro para a posição de char c em str1, ou NULL se o caractere não for encontrado.
  • strstr (str1, str2): retorna um ponteiro para a primeira ocorrência de str2 em str1, ou NULL se str2 não for encontrado.
  • strncat (str1, str2, n) Acrescenta (concatena) os primeiros n caracteres de str2 ao final de str1 e retorna um ponteiro para str1.
  • strlwr (): para converter string para minúsculas
  • strupr (): para converter string em maiúsculas
  • strrev (): para reverter string

Convertendo uma String em um Número

Na programação C, podemos converter uma string de caracteres numéricos em um valor numérico para evitar um erro de tempo de execução. A biblioteca stdio.h contém as seguintes funções para converter uma string em um número:

  • int atoi (str) Significa ASCII para inteiro; ele converte str no valor int equivalente. 0 é retornado se o primeiro caractere não for um número ou se nenhum número for encontrado.
  • double atof (str) Significa ASCII para flutuar, ele converte str para o valor duplo equivalente. 0.0 é retornado se o primeiro caractere não for um número ou nenhum número for encontrado.
  • long int atol (str) Significa ASCII em long int. Converte str no valor inteiro longo equivalente. 0 é retornado se o primeiro caractere não for um número ou se nenhum número for encontrado.

O programa a seguir demonstra a função atoi ():

#include int main(){char *string_id[10];int ID;printf("Enter a number: ");gets(string_id);ID = atoi(string_id);printf("you enter %d ",ID);return 0;}

Resultado:

Enter a number: 221348you enter 221348
  • Uma declaração de ponteiro de string como char * string = "idioma" é uma constante e não pode ser modificada.

Resumo

  • Uma string é uma sequência de caracteres armazenados em uma matriz de caracteres.
  • Uma string é um texto colocado entre aspas duplas.
  • Um caractere como 'd' não é uma string e é indicado por aspas simples.
  • 'C' fornece funções de biblioteca padrão para manipular strings em um programa. Os manipuladores de string são armazenados no arquivo de cabeçalho .
  • Uma string deve ser declarada ou inicializada antes de ser usada em um programa.
  • Existem diferentes funções de string de entrada e saída, cada uma delas tem suas características.
  • Não se esqueça de incluir a biblioteca de strings para trabalhar com suas funções
  • Podemos converter string em número por meio de atoi (), atof () e atol (), que são muito úteis para processos de codificação e decodificação.
  • Podemos manipular diferentes strings definindo um array de strings em C.