Pular para o conteúdo

Ocorrência de uma string em outra

Dica publicada em C/C++ / Introdução
Kleber de Andrade Reis kandrade
Hits: 9.797 Categoria: C/C++ Subcategoria: Introdução
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Ocorrência de uma string em outra

Esse pequeno programa nos trás a posição da ocorrência "t", que no caso é "kl" em "s" (uma string digitada pelo usuário). Caso não tenha ocorrência de "t" em "s", a função rindex retorna -1.

#include<stdio.h>

int rindex(char s[],char t[])
{
    int i=0,j=0,k=0,aux,dir;
    
    while(t[j]!='
Esse pequeno programa nos trás a posição da ocorrência "t", que no caso é "kl" em "s" (uma string digitada pelo usuário). Caso não tenha ocorrência de "t" em "s", a função rindex retorna -1.

#include<stdio.h>

int rindex(char s[],char t[])
{
    int i=0,j=0,k=0,aux,dir;
    
    while(t[j]!='
Esse pequeno programa nos trás a posição da ocorrência "t", que no caso é "kl" em "s" (uma string digitada pelo usuário). Caso não tenha ocorrência de "t" em "s", a função rindex retorna -1.

#include<stdio.h>

int rindex(char s[],char t[])
{
    int i=0,j=0,k=0,aux,dir;
    
    while(t[j]!='{TEXTO}')
        j++;    
    while(s[i+k]!='{TEXTO}')
    {  
        if(t[k]==s[i+k])
            k=k+1;
        else
        {
            i++;
            k=0;
        }              
        if(k==j)
        {
            k=0;
            dir=i+1;
            i++;
            aux=1;
        }
    }
    if(aux==1)
        return (dir);
    else
        return -1;
};    

main()
{
    int pos,i=0;
    char str[1000],c;
    printf("Digite uma string para str\n"); /*le str*/
    c=getchar();
    while(c!='\n'&&i<999)
    {
        str[i++]=c;
        c=getchar();
    }
    str[i]='{TEXTO}';    
    pos=rindex(str,"kl");
    if(pos>=0)
        printf("\nA ocorrencia + a direita de t em s e na posicao: %i\n",pos);
    else
        printf("\nNao ha ocorrencia de t em s\n");
        
};
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
')
        j++;    
    while(s[i+k]!='
Esse pequeno programa nos trás a posição da ocorrência "t", que no caso é "kl" em "s" (uma string digitada pelo usuário). Caso não tenha ocorrência de "t" em "s", a função rindex retorna -1.

#include<stdio.h>

int rindex(char s[],char t[])
{
    int i=0,j=0,k=0,aux,dir;
    
    while(t[j]!='{TEXTO}')
        j++;    
    while(s[i+k]!='{TEXTO}')
    {  
        if(t[k]==s[i+k])
            k=k+1;
        else
        {
            i++;
            k=0;
        }              
        if(k==j)
        {
            k=0;
            dir=i+1;
            i++;
            aux=1;
        }
    }
    if(aux==1)
        return (dir);
    else
        return -1;
};    

main()
{
    int pos,i=0;
    char str[1000],c;
    printf("Digite uma string para str\n"); /*le str*/
    c=getchar();
    while(c!='\n'&&i<999)
    {
        str[i++]=c;
        c=getchar();
    }
    str[i]='{TEXTO}';    
    pos=rindex(str,"kl");
    if(pos>=0)
        printf("\nA ocorrencia + a direita de t em s e na posicao: %i\n",pos);
    else
        printf("\nNao ha ocorrencia de t em s\n");
        
};
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
')
    {  
        if(t[k]==s[i+k])
            k=k+1;
        else
        {
            i++;
            k=0;
        }              
        if(k==j)
        {
            k=0;
            dir=i+1;
            i++;
            aux=1;
        }
    }
    if(aux==1)
        return (dir);
    else
        return -1;
};    

main()
{
    int pos,i=0;
    char str[1000],c;
    printf("Digite uma string para str\n"); /*le str*/
    c=getchar();
    while(c!='\n'&&i<999)
    {
        str[i++]=c;
        c=getchar();
    }
    str[i]='
Esse pequeno programa nos trás a posição da ocorrência "t", que no caso é "kl" em "s" (uma string digitada pelo usuário). Caso não tenha ocorrência de "t" em "s", a função rindex retorna -1.

#include<stdio.h>

int rindex(char s[],char t[])
{
    int i=0,j=0,k=0,aux,dir;
    
    while(t[j]!='{TEXTO}')
        j++;    
    while(s[i+k]!='{TEXTO}')
    {  
        if(t[k]==s[i+k])
            k=k+1;
        else
        {
            i++;
            k=0;
        }              
        if(k==j)
        {
            k=0;
            dir=i+1;
            i++;
            aux=1;
        }
    }
    if(aux==1)
        return (dir);
    else
        return -1;
};    

main()
{
    int pos,i=0;
    char str[1000],c;
    printf("Digite uma string para str\n"); /*le str*/
    c=getchar();
    while(c!='\n'&&i<999)
    {
        str[i++]=c;
        c=getchar();
    }
    str[i]='{TEXTO}';    
    pos=rindex(str,"kl");
    if(pos>=0)
        printf("\nA ocorrencia + a direita de t em s e na posicao: %i\n",pos);
    else
        printf("\nNao ha ocorrencia de t em s\n");
        
};
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
';    
    pos=rindex(str,"kl");
    if(pos>=0)
        printf("\nA ocorrencia + a direita de t em s e na posicao: %i\n",pos);
    else
        printf("\nNao ha ocorrencia de t em s\n");
        
};
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
')
        j++;    
    while(s[i+k]!='
Esse pequeno programa nos trás a posição da ocorrência "t", que no caso é "kl" em "s" (uma string digitada pelo usuário). Caso não tenha ocorrência de "t" em "s", a função rindex retorna -1.

#include<stdio.h>

int rindex(char s[],char t[])
{
    int i=0,j=0,k=0,aux,dir;
    
    while(t[j]!='
Esse pequeno programa nos trás a posição da ocorrência "t", que no caso é "kl" em "s" (uma string digitada pelo usuário). Caso não tenha ocorrência de "t" em "s", a função rindex retorna -1.

#include<stdio.h>

int rindex(char s[],char t[])
{
    int i=0,j=0,k=0,aux,dir;
    
    while(t[j]!='{TEXTO}')
        j++;    
    while(s[i+k]!='{TEXTO}')
    {  
        if(t[k]==s[i+k])
            k=k+1;
        else
        {
            i++;
            k=0;
        }              
        if(k==j)
        {
            k=0;
            dir=i+1;
            i++;
            aux=1;
        }
    }
    if(aux==1)
        return (dir);
    else
        return -1;
};    

main()
{
    int pos,i=0;
    char str[1000],c;
    printf("Digite uma string para str\n"); /*le str*/
    c=getchar();
    while(c!='\n'&&i<999)
    {
        str[i++]=c;
        c=getchar();
    }
    str[i]='{TEXTO}';    
    pos=rindex(str,"kl");
    if(pos>=0)
        printf("\nA ocorrencia + a direita de t em s e na posicao: %i\n",pos);
    else
        printf("\nNao ha ocorrencia de t em s\n");
        
};
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
')
        j++;    
    while(s[i+k]!='
Esse pequeno programa nos trás a posição da ocorrência "t", que no caso é "kl" em "s" (uma string digitada pelo usuário). Caso não tenha ocorrência de "t" em "s", a função rindex retorna -1.

#include<stdio.h>

int rindex(char s[],char t[])
{
    int i=0,j=0,k=0,aux,dir;
    
    while(t[j]!='{TEXTO}')
        j++;    
    while(s[i+k]!='{TEXTO}')
    {  
        if(t[k]==s[i+k])
            k=k+1;
        else
        {
            i++;
            k=0;
        }              
        if(k==j)
        {
            k=0;
            dir=i+1;
            i++;
            aux=1;
        }
    }
    if(aux==1)
        return (dir);
    else
        return -1;
};    

main()
{
    int pos,i=0;
    char str[1000],c;
    printf("Digite uma string para str\n"); /*le str*/
    c=getchar();
    while(c!='\n'&&i<999)
    {
        str[i++]=c;
        c=getchar();
    }
    str[i]='{TEXTO}';    
    pos=rindex(str,"kl");
    if(pos>=0)
        printf("\nA ocorrencia + a direita de t em s e na posicao: %i\n",pos);
    else
        printf("\nNao ha ocorrencia de t em s\n");
        
};
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
')
    {  
        if(t[k]==s[i+k])
            k=k+1;
        else
        {
            i++;
            k=0;
        }              
        if(k==j)
        {
            k=0;
            dir=i+1;
            i++;
            aux=1;
        }
    }
    if(aux==1)
        return (dir);
    else
        return -1;
};    

main()
{
    int pos,i=0;
    char str[1000],c;
    printf("Digite uma string para str\n"); /*le str*/
    c=getchar();
    while(c!='\n'&&i<999)
    {
        str[i++]=c;
        c=getchar();
    }
    str[i]='
Esse pequeno programa nos trás a posição da ocorrência "t", que no caso é "kl" em "s" (uma string digitada pelo usuário). Caso não tenha ocorrência de "t" em "s", a função rindex retorna -1.

#include<stdio.h>

int rindex(char s[],char t[])
{
    int i=0,j=0,k=0,aux,dir;
    
    while(t[j]!='{TEXTO}')
        j++;    
    while(s[i+k]!='{TEXTO}')
    {  
        if(t[k]==s[i+k])
            k=k+1;
        else
        {
            i++;
            k=0;
        }              
        if(k==j)
        {
            k=0;
            dir=i+1;
            i++;
            aux=1;
        }
    }
    if(aux==1)
        return (dir);
    else
        return -1;
};    

main()
{
    int pos,i=0;
    char str[1000],c;
    printf("Digite uma string para str\n"); /*le str*/
    c=getchar();
    while(c!='\n'&&i<999)
    {
        str[i++]=c;
        c=getchar();
    }
    str[i]='{TEXTO}';    
    pos=rindex(str,"kl");
    if(pos>=0)
        printf("\nA ocorrencia + a direita de t em s e na posicao: %i\n",pos);
    else
        printf("\nNao ha ocorrencia de t em s\n");
        
};
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
';    
    pos=rindex(str,"kl");
    if(pos>=0)
        printf("\nA ocorrencia + a direita de t em s e na posicao: %i\n",pos);
    else
        printf("\nNao ha ocorrencia de t em s\n");
        
};
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
')
    {  
        if(t[k]==s[i+k])
            k=k+1;
        else
        {
            i++;
            k=0;
        }              
        if(k==j)
        {
            k=0;
            dir=i+1;
            i++;
            aux=1;
        }
    }
    if(aux==1)
        return (dir);
    else
        return -1;
};    

main()
{
    int pos,i=0;
    char str[1000],c;
    printf("Digite uma string para str\n"); /*le str*/
    c=getchar();
    while(c!='\n'&&i<999)
    {
        str[i++]=c;
        c=getchar();
    }
    str[i]='
Esse pequeno programa nos trás a posição da ocorrência "t", que no caso é "kl" em "s" (uma string digitada pelo usuário). Caso não tenha ocorrência de "t" em "s", a função rindex retorna -1.

#include<stdio.h>

int rindex(char s[],char t[])
{
    int i=0,j=0,k=0,aux,dir;
    
    while(t[j]!='
Esse pequeno programa nos trás a posição da ocorrência "t", que no caso é "kl" em "s" (uma string digitada pelo usuário). Caso não tenha ocorrência de "t" em "s", a função rindex retorna -1.

#include<stdio.h>

int rindex(char s[],char t[])
{
    int i=0,j=0,k=0,aux,dir;
    
    while(t[j]!='{TEXTO}')
        j++;    
    while(s[i+k]!='{TEXTO}')
    {  
        if(t[k]==s[i+k])
            k=k+1;
        else
        {
            i++;
            k=0;
        }              
        if(k==j)
        {
            k=0;
            dir=i+1;
            i++;
            aux=1;
        }
    }
    if(aux==1)
        return (dir);
    else
        return -1;
};    

main()
{
    int pos,i=0;
    char str[1000],c;
    printf("Digite uma string para str\n"); /*le str*/
    c=getchar();
    while(c!='\n'&&i<999)
    {
        str[i++]=c;
        c=getchar();
    }
    str[i]='{TEXTO}';    
    pos=rindex(str,"kl");
    if(pos>=0)
        printf("\nA ocorrencia + a direita de t em s e na posicao: %i\n",pos);
    else
        printf("\nNao ha ocorrencia de t em s\n");
        
};
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
')
        j++;    
    while(s[i+k]!='
Esse pequeno programa nos trás a posição da ocorrência "t", que no caso é "kl" em "s" (uma string digitada pelo usuário). Caso não tenha ocorrência de "t" em "s", a função rindex retorna -1.

#include<stdio.h>

int rindex(char s[],char t[])
{
    int i=0,j=0,k=0,aux,dir;
    
    while(t[j]!='{TEXTO}')
        j++;    
    while(s[i+k]!='{TEXTO}')
    {  
        if(t[k]==s[i+k])
            k=k+1;
        else
        {
            i++;
            k=0;
        }              
        if(k==j)
        {
            k=0;
            dir=i+1;
            i++;
            aux=1;
        }
    }
    if(aux==1)
        return (dir);
    else
        return -1;
};    

main()
{
    int pos,i=0;
    char str[1000],c;
    printf("Digite uma string para str\n"); /*le str*/
    c=getchar();
    while(c!='\n'&&i<999)
    {
        str[i++]=c;
        c=getchar();
    }
    str[i]='{TEXTO}';    
    pos=rindex(str,"kl");
    if(pos>=0)
        printf("\nA ocorrencia + a direita de t em s e na posicao: %i\n",pos);
    else
        printf("\nNao ha ocorrencia de t em s\n");
        
};
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
')
    {  
        if(t[k]==s[i+k])
            k=k+1;
        else
        {
            i++;
            k=0;
        }              
        if(k==j)
        {
            k=0;
            dir=i+1;
            i++;
            aux=1;
        }
    }
    if(aux==1)
        return (dir);
    else
        return -1;
};    

main()
{
    int pos,i=0;
    char str[1000],c;
    printf("Digite uma string para str\n"); /*le str*/
    c=getchar();
    while(c!='\n'&&i<999)
    {
        str[i++]=c;
        c=getchar();
    }
    str[i]='
Esse pequeno programa nos trás a posição da ocorrência "t", que no caso é "kl" em "s" (uma string digitada pelo usuário). Caso não tenha ocorrência de "t" em "s", a função rindex retorna -1.

#include<stdio.h>

int rindex(char s[],char t[])
{
    int i=0,j=0,k=0,aux,dir;
    
    while(t[j]!='{TEXTO}')
        j++;    
    while(s[i+k]!='{TEXTO}')
    {  
        if(t[k]==s[i+k])
            k=k+1;
        else
        {
            i++;
            k=0;
        }              
        if(k==j)
        {
            k=0;
            dir=i+1;
            i++;
            aux=1;
        }
    }
    if(aux==1)
        return (dir);
    else
        return -1;
};    

main()
{
    int pos,i=0;
    char str[1000],c;
    printf("Digite uma string para str\n"); /*le str*/
    c=getchar();
    while(c!='\n'&&i<999)
    {
        str[i++]=c;
        c=getchar();
    }
    str[i]='{TEXTO}';    
    pos=rindex(str,"kl");
    if(pos>=0)
        printf("\nA ocorrencia + a direita de t em s e na posicao: %i\n",pos);
    else
        printf("\nNao ha ocorrencia de t em s\n");
        
};
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
';    
    pos=rindex(str,"kl");
    if(pos>=0)
        printf("\nA ocorrencia + a direita de t em s e na posicao: %i\n",pos);
    else
        printf("\nNao ha ocorrencia de t em s\n");
        
};
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
';    
    pos=rindex(str,"kl");
    if(pos>=0)
        printf("\nA ocorrencia + a direita de t em s e na posicao: %i\n",pos);
    else
        printf("\nNao ha ocorrencia de t em s\n");
        
};
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Conversão vetor de caracteres para double

Desligando Slackware com fonte ATX automaticamente

Função recursiva para inverter um vetor de caracteres

Encontrando erros em seus programas

Utilizando funções em C++

Gerando números aleatórios em C

Mais uma dica de curso de C e C++

Programando no Ubuntu - aplicações gráficas em C++ com Eclipse e Glade

#1 Comentário enviado por kandrade em 08/11/2004 - 08:32h
e ai galera não sei pq mas esse código q eu enviei sofreu algumas alterações..........ai vai o código correto..........a função rindex retorna a posição + a direita da ocorrencia de t em s......ou seja a posição da última ocorrencia..........te+........


#include<stdio.h>

int rindex(char s[],char t[])
{
int i=0,j=0,k=0,aux,dir;

while(t[j]!='\0')
j++;
while(s[i+k]!='\0')
{
if(t[k]==s[i+k])
k=k+1;
else
{
i++;
k=0;
}
if(k==j)
{
k=0;
dir=i+1;
i++;
aux=1;
}
}
if(aux==1)
return (dir);
else
return -1;
};

main()
{
int pos,i=0;
char str[1000],c;
printf("Digite uma string para str\n"); /*le str*/
c=getchar();
while(c!='\n'&&i<999)
{
str[i++]=c;
c=getchar();
}
str[i]='\0';
pos=rindex(str,"kl");
if(pos>=0)
printf("\nA ocorrencia + a direita de t em s e na posicao: %i\n",pos);
else
printf("\nNao ha ocorrencia de t em s\n");
};
#2 Comentário enviado por kandrade em 08/11/2004 - 08:35h
onde está escrito '{comentario}' tem q ser o caracter q indica fim de string.........\t ok!!!!!!!
#3 Comentário enviado por jochan em 14/12/2005 - 14:47h
Muito legal, vai me ajudar bastente no meu projeto de C++ ... =)

Contribuir com comentário

Entre na sua conta para comentar.