Usando "sscanf" para Dividir String com Delimitadores em C

Publicado por Mauricio Ferrari em 26/02/2021

[ Hits: 4.500 ]

Blog: https://www.youtube.com/@LinuxDicasPro

 


Usando "sscanf" para Dividir String com Delimitadores em C



Você está programando em C e precisa de um método simples para separar strings em strings menores ou qualquer outra variável. Além de dividir a string, você quer os resultados gravados em outras variáveis, seja int, char, entre outros. Talvez, você se interesse pelo sscanf.

Seu uso é muito simples. Veja o exemplo a seguir:

#include <stdio.h>
#include <stdlib.h>

int main() {
    char *teste = (char *)malloc(sizeof(char));
    teste = "10/20/30";

    int a, b, c;
    sscanf(teste, "%d/%d/%d", &a, &b, &c);
    printf("
Resultado:
%d %d %d 
", a, b, c);

    teste = "pera,uva,figo";
    char *str1 = (char *)malloc(sizeof(char));
    char *str2 = (char *)malloc(sizeof(char));
    char *str3 = (char *)malloc(sizeof(char));

    sscanf(teste, "%[^,],%[^,],%[^,]", str1, str2, str3);
    printf("
Resultado:
%s %s %s 
", str1, str2, str3);
    return 0;
}

Note que eu exemplifiquei usando alocação dinâmica, não é obrigatório. Você pode declarar a variável char normalmente como você preferir. O que nos interessa é como a função sscanf foi usada. No primeiro exemplo, note que foi possível usar a barra como delimitador e usar os números para gravá-los em variáveis int, bem prático.

No segundo exemplo, o negócio muda um pouco de figura, no lugar de "%s" foi usado "%[^,]", ou seja, pegue o valor entre o começo da delimitação e a vírgula. Usando o "%s", as vírgulas serão recolhidas e gravadas nas novas variáveis também, o que não é interessante nesse caso. Note também que não foi necessário usar "&" para fazer a divisão para outras strings.

Fica a dica.

Outras dicas deste autor

Usando Vídeo Wallpaper no KDE

Comando CUT usando delimitador TAB

OpenArena que funciona no Linux Mint 20

Executando um Comando ou Programa como Outro Usuário

Kino 1.3.4 no Slackware 14.2 x64

Leitura recomendada

Lançado o FltkEmu

C compiler Cannot create executable?

Como criar bibliotecas dinâmicas em C/C++

Cross Compiling - compilando seus programas C/C++ para Windows usando seu Linux

Como escrever código portável

  

Comentários
[1] Comentário enviado por SamL em 18/03/2021 - 05:50h

Legal.


____________________________________________
https://nerdki.blogspot.com/ acessa aí vai lá, é grátis!
Capeta (demo) do meu trabalho:
https://github.com/cpusam
"com o bug fix vem a perfeição"

[2] Comentário enviado por maurixnovatrento em 18/03/2021 - 09:08h


valeu.

___________________________________________________________
[code]Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento [/code]



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts