Usando "sscanf" para Dividir String com Delimitadores em C

Publicado por Mauricio Ferrari em 26/02/2021

[ Hits: 4.624 ]

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

Como adicionar PPA no Deepin 20

Deixando o Google Chrome em modo Dark no Linux - Experimental

FrostWire - Cliente P2P no Debian e derivados

Função para Abrir uma Interface do tkinter no Centro da Tela em Python

Comando CUT usando delimitador TAB

Leitura recomendada

Lista de IDEs para Programação em Qualquer Distro

Exercícios em C

Usando funções do sistema em C com "system"

Site de livros

Apostila de ncurses bem completa

  

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