Valeu chefe! Eu estava procurando um meio de consultar um nome em meu programa, por meio de um prefixo. A função strncmp me serviu como uma luva. Muito obrigado.
Bom dia, professor. Preciso fazer programa que o usuário entra com uma frase e eu verifico se ela é palíndroma, porém não pode usar nenhuma função da biblioteca e a verificação deve ser feita sem conter espaços na frase. O meu problema está na hora de criar o laço for para verificar se elas são iguais. Pode me ajudar?
Bom dia Luís. Não sou o Professor Eduardo mas eu recentemente tive que fazer um programa muito parecido com esse e espero poder te ajudar. Para resolver esse problema nós vamos utilizar variáveis de tipo int em forma de vetor. Com isso, podemos utilizar um for loop para acessar os números que constituem essa sequência. Suponhamos que temos que avaliar a sequência: 1 2 3 2 1, N=5 Essa sequência claramente é palíndroma. Uma outra maneira de ver que ela é palíndroma é que a sequência é "espelhada" em torno do termo central. Essa informação será importante para a nossa análise dos termos no loop. A parte mais difícil do problema é realmente acessar esses termos e compará-los. Uma das maneiras, seria usando duas variáveis vetoriais de tipo int. Nesse caso é necessário usar mais um for loop para copiar os termos do vetor 1 no vetor 2. No entanto, nós devemos copiar essa sequência na ordem contrária à da original e para fazer isso podemos fazer um for loop começando com a nossa variável de iteração no último elemento do vetor 1 e indo até o valor 0. Além do loop, utilizaremos um contador para que os elementos de v2 sejam acessados do 0 ao 4 (porque a sequência possui 5 elementos). Dessa maneira, o contador estará crescendo e a variável de iteração estará diminuindo. Após adquirida a sequência na ordem contrária, podemos fazer um for loop que vai do elemento 0 até o elemento N/2, pois como eu disse anteriormente, a sequência é "espelhada" em torno do termo central, então não há necessidade de chechar todos os termos. Se ocorrer que um elemento de v1 é diferente de v2, nós saímos do loop e o programa imprime se a sequência é palíndroma ou não. Para sair do loop e imprimir se a sequência é palíndroma ou não, nós vamos utilizar um flag. Um exemplo do programa descrito acima seria: int main( ){ int v1[5]; int v2[5]; int i; int ctr=0; int found=1; for(i=4; i>=0; i--){ v2[ctr] = v1[ i ]; ++ctr; } for(i=0;i
Dá para resolver esse problema de uma forma bem mais eficiente, comparando os elementos do próprio vetor. Mas isso eu não sabia e apenas descobri quando olhei a resolução que o meu professor fez. Para isso, podemos fazer um for loop desta forma: for(int i=0;i
@@eduardoschiavon5652 Eduardo será q vc conseguiria me ajudar? Preciso criar um programa que leia um texto, e depois peça ao usuário para digitar (em outra variável) uma palavra qualquer. Após isso, devo verificar se essa palavra apareceu no texto inicial, e caso tenha aparecido, devo dizer quantas vezes apareceu. Pensei em usar o comando "strcmp" para comparar a primeira variável (texto) com a segunda variável (palavra), mas empaquei após isso, porque no caso aparece como no exemplo do vídeo, 0, 1 ou -1. Caso vc tenha alguma ideia ou sugestão ficaria muito feliz... agradeço desde já
@@Vinicius-vu3mk cara na vdd eu não estou, mas se vc quiser apresentar alguma solução de como vc teria feito eu ia agradecer bastante (pq sinceramente eu perguntei pra muitas pessoas e nenhuma delas conseguiu concluir esse Exercício)
Valeu amigo. Tava fazendo um insertion sort com strings, usando o -1 como base de comparação. Nunca que iria dar certo, a função não tava sendo executada, mas consegui corrigir.
Valeu chefe!
Eu estava procurando um meio de consultar um nome em meu programa, por meio de um prefixo.
A função strncmp me serviu como uma luva.
Muito obrigado.
A função strcmp me ajudou em um sistema de login em C, muito util!
Vídeos excelentes, professor. Tão me salvando na prova que vou fazer hoje.
Professor excelente conteúdo!!!
muito bom o video
Cara, você é simplesmente ESPETACULAR!!!!!
Valeuuuuuuuuuuu, meu chefe! Ajudou pra caramba!!
Esse professor é nota 10, parabens
esse canal é perfeito
Muito bom video ajudou muito, melhor que meu professor
muito bom mestre
Muito bom ajudou muito em computaçao eletronica
Muito obrigado. Me ajudou
E se eu quiser comparar uma variável de string sem valor com uma string recebida de um scanf?
Muito bom.
Muito obrigado!
Bom dia, professor. Preciso fazer programa que o usuário entra com uma frase e eu verifico se ela é palíndroma, porém não pode usar nenhuma função da biblioteca e a verificação deve ser feita sem conter espaços na frase. O meu problema está na hora de criar o laço for para verificar se elas são iguais. Pode me ajudar?
Bom dia Luís. Não sou o Professor Eduardo mas eu recentemente tive que fazer um programa muito parecido com esse e espero poder te ajudar.
Para resolver esse problema nós vamos utilizar variáveis de tipo int em forma de vetor. Com isso, podemos utilizar um for loop para acessar os números que constituem essa sequência.
Suponhamos que temos que avaliar a sequência: 1 2 3 2 1, N=5
Essa sequência claramente é palíndroma. Uma outra maneira de ver que ela é palíndroma é que a sequência é "espelhada" em torno do termo central. Essa informação será importante para a nossa análise dos termos no loop.
A parte mais difícil do problema é realmente acessar esses termos e compará-los. Uma das maneiras, seria usando duas variáveis vetoriais de tipo int. Nesse caso é necessário usar mais um for loop para copiar os termos do vetor 1 no vetor 2. No entanto, nós devemos copiar essa sequência na ordem contrária à da original e para fazer isso podemos fazer um for loop começando com a nossa variável de iteração no último elemento do vetor 1 e indo até o valor 0. Além do loop, utilizaremos um contador para que os elementos de v2 sejam acessados do 0 ao 4 (porque a sequência possui 5 elementos). Dessa maneira, o contador estará crescendo e a variável de iteração estará diminuindo.
Após adquirida a sequência na ordem contrária, podemos fazer um for loop que vai do elemento 0 até o elemento N/2, pois como eu disse anteriormente, a sequência é "espelhada" em torno do termo central, então não há necessidade de chechar todos os termos. Se ocorrer que um elemento de v1 é diferente de v2, nós saímos do loop e o programa imprime se a sequência é palíndroma ou não. Para sair do loop e imprimir se a sequência é palíndroma ou não, nós vamos utilizar um flag.
Um exemplo do programa descrito acima seria:
int main( ){
int v1[5];
int v2[5];
int i;
int ctr=0;
int found=1;
for(i=4; i>=0; i--){
v2[ctr] = v1[ i ];
++ctr;
}
for(i=0;i
Dá para resolver esse problema de uma forma bem mais eficiente, comparando os elementos do próprio vetor. Mas isso eu não sabia e apenas descobri quando olhei a resolução que o meu professor fez.
Para isso, podemos fazer um for loop desta forma:
for(int i=0;i
@@eduardoschiavon5652 Eduardo será q vc conseguiria me ajudar? Preciso criar um programa que leia um texto, e depois peça ao usuário para digitar (em outra variável) uma palavra qualquer. Após isso, devo verificar se essa palavra apareceu no texto inicial, e caso tenha aparecido, devo dizer quantas vezes apareceu. Pensei em usar o comando "strcmp" para comparar a primeira variável (texto) com a segunda variável (palavra), mas empaquei após isso, porque no caso aparece como no exemplo do vídeo, 0, 1 ou -1. Caso vc tenha alguma ideia ou sugestão ficaria muito feliz... agradeço desde já
@@gabrielacristina1557 Ainda está com o problema?
@@Vinicius-vu3mk cara na vdd eu não estou, mas se vc quiser apresentar alguma solução de como vc teria feito eu ia agradecer bastante (pq sinceramente eu perguntei pra muitas pessoas e nenhuma delas conseguiu concluir esse Exercício)
Como incluir uma função que mostre oque esta diferente entre duas strings com grande numero de caracteres ?
Valew!
Perfeito!
Como faz sem essa função strcmp
O que significa !strncmp com exclamaçao antes?
Lembrando que no windows essa função retorna os valores 0, -1 ou 1, já no linux ela retorna 0, um valor menor que 0 ou um valor maior que 0
Valeu amigo. Tava fazendo um insertion sort com strings, usando o -1 como base de comparação. Nunca que iria dar certo, a função não tava sendo executada, mas consegui corrigir.
12 - 02 - 21