função sscanf em c

função sscanf em c
Nas várias linguagens de programação, como C, sempre encontramos programas que contribuem para obter a entrada do usuário na forma de qualquer valor digitado da entrada do teclado, que envolve o uso do método scanf (). Mas existem vários outros programas onde queremos ler os dados formatados a partir da outra string em vez de entrada do teclado. Para esses tipos de seqüências formatadas de leitura de uma corda para outra, usamos o método sscanf (). Esta função substitui o valor em uma string com a outra string, ou quando extrai e quebra a string inteira em duas seqüências diferentes. Suponha que tenhamos uma string "oi para o mundo". Quebramos e armazenamos essa string em três outras strings e a armazenamos em outra variável; Então, podemos usar o método sscanf ().

Procedimento

Podemos ser confundidos com o uso das funções SCANF () e sscanf () no C no C. Este artigo diferenciará entre essas duas funções e nos mostrará a sintaxe e o método para implementar o método sscanf () com a ajuda de vários exemplos. Vamos continuar com o procedimento com as seguintes etapas:

Sintaxe
Para implementar o método sscanf (), precisamos ter uma aderência completa sobre a sintaxe deste método. Esta função leva os seguintes argumentos que precisamos entender completamente:

$ int sscanf (const char * string, const char * formato, [arg1, arg2,…]);

Nos argumentos do método sscanf (), o primeiro argumento é o caráter para o tipo de string de ponte. O segundo argumento é o especificador de formato indicando o tipo de dados dos dados a serem alocados, e o último é a lista de argumentos que é o mesmo que o método scanf (). Em resumo, o método sscanf () é usado especificamente para ler os dados do buffer e armazenar esses dados nos locais, conforme definido na lista de argumentos, onde todo argumento é solicitado a ser um ponteiro para a variável com o tipo especificado em a sequência do formato (segundo argumento).

Exemplo # 01
Implementaremos um programa neste exemplo para mostrar o funcionamento do sscanf () para ler as strings. Para trabalhar com o método sscanf (), teríamos que importar os dois arquivos de cabeçalhos a seguir para os programas.

$ # inclua
$ # inclua

As duas bibliotecas com extensão “.H ”são representados como arquivos dos cabeçalhos. Esta primeira biblioteca está incluída para usar as informações sobre a entrada de leitura e a saída de exibição no programa. A corda ".H ”é usado, pois este arquivo de cabeçalho lida com a declaração das funções que lidam com strings, memória e constantes. Agora, em geral, declararemos e inicializaremos uma string de ponteiro com o tipo de dados Char com seu valor atribuído como "David Executive 39". Em seguida, declararemos as outras duas cordas com nomes, "designação" e "nome", respectivamente, tendo o tamanho da memória igual a dez "10".

Outra variável com o número de dados e a idade do nome também será inicializada. Na próxima etapa, chamaremos o método sscanf () e leremos os dados do tipo de ponteiro já declarado e inicializado CHAR String. A corda declarada “David Executive 39” tem três itens diferentes: nome, idade e designação. Vamos lê -los seguindo o mesmo procedimento que scanf (), onde leremos as informações passando o especificador de formato para essa informação com seu nome.

Isso seria feito na lista de argumentos do método sscanf () como sscanf (string, “ %s %s %d”, nome, designação e idade) e, em seguida, salvamos em alguma outra variável com o tipo de dados como “ int ”. Seguindo as etapas, extraímos as três informações diferentes de uma corda. Agora, exibiremos esses três itens na saída chamando o método printf ().

#incluir
#incluir
int main ()

char* string = "David Executive 28";
nome de char [10], designação [10];
idade int, extrato;
extract = sscanf (string, " %s %s %d", nome, designação e idade);
printf ("Nome: %s \ n", nome);
printf ("Designação: %s \ n", designação);
printf ("Idade: %d \ n", idade);
retornar 0;

A saída mostra que extraímos de uma corda de buffer as três informações e as escrevemos nos locais específicos da lista de argumentos como nome, designação e idade usando o método sscanf ().

Exemplo # 02
Implementaremos outro exemplo para o método sscanf () para extrair as cordas da outra string. Primeiro, imporemos as bibliotecas necessárias, da seguinte maneira:

$ # inclua
$ #include
$ #include

Essas bibliotecas incluirão automaticamente as funções Printf, SSCANF e SCANF () necessárias no programa. No exemplo anterior, usamos a string do tipo de char que atuava como um buffer ou fonte, para que pudéssemos recuperar os dados dela. Mas, neste exemplo, simplesmente declararemos uma string usando strcpy (string_name, "string"). Em seguida, usaremos essa string como o primeiro argumento do método sscanf () para usá -la como um buffer, para que ela possa ser lida para extrair as informações do strcpy () e armazenada no local, conforme especificado pela lista de argumentos. Depois que as informações são armazenadas nos respectivos locais de argumento usando o método sscanf (), exibiremos essas informações com nomes e especificadores de formato chamando o método printf ().

#incluir
#incluir
#incluir
int main ()
int dia, ano;
Char Weekday [20], mês [20], String [100];
strcpy (String, "Terça -feira, 25 de outubro de 2022");
sscanf (string, " %s %s %d %d", dia da semana, mês e dia e ano);
printf (" %s %d, %d = %s \ n", mês, dia, ano, dia da semana);
retornar (0);

Declaramos uma string usando strcpy com a sequência de nome como terça -feira, 25 de outubro de 2022, e passamos essa string como a sequência de buffer/fonte da função sscanf (), que extraía as informações, como um mês, data, ano e dia de acordo com a lista de argumentos. Esta informação extraída é exibida, chamando a função PRIMF ().

Conclusão

O método sscanf () é usado na linguagem de programação C para substituir uma string por outra. Para usar esta função, deve -se ter clareza sobre o conceito da lista de argumentos sscanf (). Este artigo explica claramente o processo passo a passo, que envolve a sintaxe da função, exigiu argumentos pela função e onde podemos usar essa função para fazer uma boa lógica para nossos programas de software.