Ir para conteúdo
Fórum Script Brasil
  • 0

Duvida Contar Palavra


Venacava

Pergunta

Olá \o/

 

Estou com um probleminha...

Gostaria de entender um exercicio passado em sala, bom ele é bem simples, esta assim:

 

Elabore um programa em C que leia uma string e uma substring ( ok isso feito )

A substring deve encontrar em qual parte a string esta (Ok feito, usei strstr )

Ex:string ="matematica";

     Substring=mati;

saida:matica.

E deve mostrar em qual posicao achou a string (não consigo fazer isso)

Ex:Posicao 5;

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
#include <stdio.h>
#include <string.h>

// int MySubPos(char nome[], char sub[])
// {
	// register int i, a, b;
	
	// for(i = 0; nome[i]; i++)
		// if(nome[i] == sub[0])
		// {
			// for(a = i, b = 0; sub[b]; a++, b++)
				// if(nome[a] != sub[b])
					// break;
			
			// if( !sub[b] )
				// return i;
		// }
		
	// return -1;
// }

int MySubPos(char nome[], char sub[])
{
	register int i;
	
	for(i = 0; nome[i]; i++)
		if( !(strcmp(&nome[i], sub)) )
			return i;
		
	return -1;
}

int main()
{
	char word[100],
		 sub[100];
	
	scanf("%s %s", word, sub);
	
	int res = MySubPos(word, sub);
	
	res != -1 ? printf("Pos %d\n", res) : printf("A sub nao foi encontrada\n");
	
	return 0;
}

 

Link para o comentário
Compartilhar em outros sites

  • 0

Nefisto vlw pela resposta...

A primeira função já faz o que eu preciso, a segunda não deu certo aqui (uso dev)

Eu acabei fazendo uma função que faz isso, o resultado sai certo, porém não sei se esta certo dessa forma.

58 minutos atrás, Nefisto disse:

// register int i, a, b;

Nunca tinha visto isso, vou olhar agora no google (quanta coisa p/ estudar O.o)

ficou assim meu exercício

.

//Blibliotecas
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<conio.h>

int main ()
{
	//funcao
	char pegapalavra(char*a);
	char pegapalavra2(char*b);
	int pegatamanho(char a[]);
	void verificaposicao(char a[],char b[],int x);
	
	//variaveis
	int tam1;
	char palavra[20];
	char subpalavra[10];
	
	//main
	pegapalavra(palavra);
	pegapalavra2(subpalavra);
	tam1=pegatamanho(palavra);
	verificaposicao(palavra,subpalavra,tam1);
}

char pegapalavra(char*a)
{
	printf("Digite uma palavra\n");
	gets(a);
}
char pegapalavra2(char*b)
{
	printf("Digite subpalavra\n");
	gets(b);
}
int pegatamanho(char a[])
{
	int qtdpalavra;
	qtdpalavra=strlen(a);
	return qtdpalavra;
}
void verificaposicao(char a[],char b[],int x)
{
	char *saida;
	int con1,j;
	saida = strstr(a,b);
	printf("Palavra %s\n",saida);
	j=pegatamanho(saida);
	con1=(x-j)+1;
	printf("posicao %d\n",con1);
	
}

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...