Ir ao conteúdo
  • Cadastre-se

Extrair partes de uma string


freddys_

Posts recomendados

Olá pessoal do fórum, tudo bem?

Eu preciso extrair partes de uma string em C, mas não sei como fazer, parte do código:

if (resultado >0){

linha[resultado]='';

}

No caso, a string que a variável linha tem, é algo parecido com isso "!Ntexto.txt#", ou "!FTexto de exemplo#"

O que preciso é conseguir extrair o 2º caracter, no primeiro exemplo o N e no segundo exemplo o F

E também extrair os caracteres, no primeiro exemplo o "texto.txt" e no segundo exemplo o "Texto de exemplo", no caso retirar os 2 primeiros caracteres e o último!

Desde já obrigado quem puder ajudar!

Link para o comentário
Compartilhar em outros sites

Se for sempre esse padrão de texto, poderá usar assim:


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

int main()
{
char string1[] = "!Ntexto.txt#";
char string2[] = "!FTexto de exemplo#";
char *tmp;

printf("Texto 1 - Segunda letra: %c\n", string1[1]); // Mostra apenas o segundo caracter
printf("Texto 2 - Segunda letra: %c\n", string2[1]); // Mostra apenas o segundo caracter

tmp = &string1[2]; // Aponta para a posicao dois da string
tmp[strlen(tmp)-1] = '\0'; // retira o ultimo caracter
printf("Texto 1 - Palavra: %s\n", tmp);

tmp = &string2[2]; // Aponta para a posicao dois da string
tmp[strlen(tmp)-1] = '\0'; // retira o ultimo caracter
printf("Texto 2 - Palavra: %s\n", tmp);

return 0;
}

Link para o comentário
Compartilhar em outros sites

Obrigado ScreenBlack, realmente deu certo!

Mas aí fui implementar no meu código e deu erro, pois no exemplo eu usei uma string estática, aí na hora de informar que a string vem de outra variável dá erro:

if (resultado >0){

char string1[] = "!Ntexto.txt#";//maneira como você fez

char string1[] = linha;// aí hora que tento usar a variável linha que tem a string

"!Ntexto.txt#", aparece no compilador: 163 C:\Dev-Cpp\main.c invalid initializer

O que será que é que to fazendo errado?

E assim, na verdade, eu não preciso mostrar o texto na tela (as strings extraidas), preciso armazenar elas em variáveis, pois no caso do primeiro exemplo, a letra, vou usar em um while, pra de acordo com a letra executar ações diferentes! valeu!

Link para o comentário
Compartilhar em outros sites

Pelo visto, você quer copiar o conteúdo da variável linha para a variável "string1[]".

Isso não é possível de forma direta em C.

Para se copiar uma string, deve-se usar o comando 'strcpy()'. Mas lembrando que, a variável que receberá a cópia, deverá ter no mínimo o mesmo tamanho que a variável que será copiada.

Exemplo:

    char string1[255]; // Coloquei espaço a mais, achando que será suficiente    char linha[] = "Conteudo qualquer";    strcpy(string1, linha); // Aqui sera feita a copia de linha para string1

No exemplo que passei no post anterior, foi possível fazer diretamente para a variável 'tmp' porque ela é um ponteiro para 'char', logo, apenas apontei ela para a segunda posição da string.

Se quiser salvar o conteúdo de tmp para uma variável qualquer, poderá usar o 'strcpy()' para isso:

    char var_tmp[255];    strcpy(var_tmp, tmp);
Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!