Só lembrando o pessoal que este tipo estranho "_Bool" é realmente como o tipo boleano é identificado na linguagem. Se usar a biblioteca , então pode-se usar o tipo como "bool" (que na verdade acaba sendo apenas um alias que aponta para _Bool). A implementação do tipo boleano vem apenas na ultima especificação do C (C99). Se não roda, é por que seu compilador é compatível com uma especificação anterior da linguagem. Neste caso, melhor usar "unsigned short int" como tipo.
Olha bom dia, boa tarde de acordo a luz do dia! Não podia passar esse fim de semana, sem lhe desejar saúde e muito sucesso nos teus planos. **Confesso que a cada video que assisto, torno-me mais bom na matéria. Isso é porque tens uma forma didáctica de ensinar muito boa. e preservas muito pelos conceitos básicos e importantes antes de ensinar o profundo. EX: Ao ensinares sobre STRINGS, sem ter que usar a biblioteca "STRING.H" Isso é maravilhosooooo.
Cada aula melhor do que a outra, parabéns! Eu trocaria me professor por vc sem pensar duas vezes. Não entendo nada na Faculdade. Abraços, e obrigado pela iniciativa.
me explica um pouco melhor como exatamente o programa funciona... a parte do código morse acho que não é difícil .. mas o que você quer dizer exatamente com ler as palavras que o usuário digita depois? O programa recebe código morse misturado com portugues ao mesmo tempo? qual o objetivo do programa? ler o código morse e retornar uma string com a tradução morse?
Eu fiz no gcc como eu sempre faço e quando as strings são verdadeiras aparece na tela do meu terminal 1 e 0, ou seja, "são iguais" e "não são iguais" e no falso dá certo como aparece 0 (não são iguai). Poderia explicar o que houve?
Sendo s1 diferente de \0 não precisa fazer && s2 != \0 Porque se s1 for nulo (\0) encerra o ciclo e se s1 for diferente de \0 e s2 igual \0, s2 será diferente de s1 então encerrara o ciclo
olha, é assim: ce digita uma frase em codigo morse (ex: -.----.-.-.-.- (SEM ESPAÇO)) e depois ce pede quantos palavras ce quer para traduzir (imagina que aquilo so traduz 2 palavras mas ce fornece 4, 3 delas vao ser traduzidas e a outra nao). com essas palavras ce quer saber quantas frases traduzindo o codigo morse por completo ce consegue fazer (por exemplo, 2) e depois devolve esse valor na consola e ja está ... ja está como quem diz, que o meu não tá não
Vamos chamar a sua string de 'frase' e a palavra que você procura de 'substring': A substring tem sempre a mesma letra na frase, concorda? Então, você deve percorrer a frase com um laço de repetição, e quando encontrar a primeira letra da substring, criar um outro pequeno laço de repetição para analizar o tamanho da substring e armazenar a quantidade(incrementar +1). Exemplo: "mariANA e adriANA assistiram bANANAs de pijama" Nesta frase, a substring 'ana' apareceu 4 vezes. Tente você fazer.
se por dessa forma na função também fica bom? funcionou assim e eu achei o raciocínio mais fácil _Bool virificarstring (char x[], char y[]) { int i = 0; int j = 0; for ( ; y[j] != '\0' && x[i] != '\0' && x[i]==y[j]; ++i && ++j ); if (x[i] == y[j]) { return 1; } else { return 0; }
Olá! Eu fiz uma lógica um pouco diferente na parte do while, alguém consegue me dizer se ela está certa? Ou se tem algum caso que meu código não vai funcionar? Desde já agradeço :) void stringsIguais(char s1[], char s2[]){ int i = 0, iguais = 1; while(s1[i] != '\0' || s2[i] != '\0'){ if (s1[i] != s2[i]) iguais = 0; i++; }
if (iguais) printf(" As palavras SAO iguais :)"); else printf(" As palavras NAO SAO iguais :("); }
Um resultado inesperado no g++ é: tiago@tiago-RV415 ~/Documentos/Aula_de_C $ g++ Aula55.c -o Aula55 && ./Aula55 Aula55.c: In function ‘int main()’: Aula55.c:6:3: error: ‘_Bool’ was not declared in this scope _Bool stringsIguais(char s1[], char s2[]); ^ Aula55.c:8:34: error: ‘stringsIguais’ was not declared in this scope if(stringsIguais("casa", "casa")) ^ Aula55.c: At global scope: Aula55.c:24:1: error: ‘_Bool’ does not name a type _Bool stringsIguais(char s1[], char s2[]) ^ tiago@tiago-RV415 ~/Documentos/Aula_de_C $
o meu compilador apresenta essa mensagem de erro quando compilo: unknown type name 'bool' alguem sabe o pq? coloquei int ao inves de bool, e assim ele funcionou
Estou bastante enferrujada em C... Decidi fazer essa revisão! As aulas são realmente muito boas! Informação nunca é demais. Antes tarde do que nunca! Concordo contigo que outras pessoas poderão incorrer no mesmo erro...
Alvaro Ought Em momento algum sonhei cobrar isso dele! Estou muito grata por terem compartilhado o conhecimento. Cabe aos espectadores postar/responder dúvidas acerca, de forma a enriquecer o conteúdo exposto. Eu mesma, sempre que sei, respondo a algo.
Acompanhar desde a aula 1 por que se eu já sei o conteúdo dela? Se eu preciso de um conteúdo específico, eu não posso ver um curso completo para chegar no ep 50 e não entender nada...
Não é porque você não entendeu que a video aula é ruim cara, cada um tem sua metodologia. EU achei a video aula muito boa, se você não conseguiu entender, talvez sua metodologia seja outra e se indentifique com outras videos aulas, mas para mim deu para entender perfeitamente.
Só lembrando o pessoal que este tipo estranho "_Bool" é realmente como o tipo boleano é identificado na linguagem. Se usar a biblioteca , então pode-se usar o tipo como "bool" (que na verdade acaba sendo apenas um alias que aponta para _Bool). A implementação do tipo boleano vem apenas na ultima especificação do C (C99). Se não roda, é por que seu compilador é compatível com uma especificação anterior da linguagem. Neste caso, melhor usar "unsigned short int" como tipo.
Valeu, me salvou aqui
Parabens, sao "poucos" aqueles que compartilham conhecimento
Obrigado pelo trabalho... continua válido para ajudar a aprender C, mesmo 8 anos depois !!
Excelente aula, muito obrigado
show! cara PHP ainda não está na lista mas quem sabe num futuro.. o que posso adiantar é que vai ter bando de dados ;)
Sua aula acabou de me ajudar a resolver um exercício em que eu tava agarrado. Muito obrigado!
Olha bom dia, boa tarde de acordo a luz do dia!
Não podia passar esse fim de semana, sem lhe desejar saúde e muito sucesso nos teus planos.
**Confesso que a cada video que assisto, torno-me mais bom na matéria. Isso é porque tens uma forma didáctica de ensinar muito boa. e preservas muito pelos conceitos básicos e importantes antes de ensinar o profundo. EX: Ao ensinares sobre STRINGS, sem ter que usar a biblioteca "STRING.H" Isso é maravilhosooooo.
Cada aula melhor do que a outra, parabéns!
Eu trocaria me professor por vc sem pensar duas vezes. Não entendo nada na Faculdade. Abraços, e obrigado pela iniciativa.
Oloco. ese profesor e bom de mais. explica tudinho nao tem como nao entender. Obrigado!
" 6.51 é meio complicado escrever e digitar ao tempo," e falando então só mestre meu amigo, aula top
Aula perfeita.
Valeu!
me explica um pouco melhor como exatamente o programa funciona...
a parte do código morse acho que não é difícil .. mas o que você quer dizer exatamente com ler as palavras que o usuário digita depois? O programa recebe código morse misturado com portugues ao mesmo tempo?
qual o objetivo do programa? ler o código morse e retornar uma string com a tradução morse?
Pode substituir s1[i] == s2[i] && s1[i] != '\0' && s2[i] != '\0' por simplesmente s1[i] == s2[i] && s1[i] != '\0' .
muito bem explicado.
perfeito ..parabens!
Eu resolvi assim:
#include
#include
#include
int main()
{
setlocale(LC_ALL, "Portuguese");
_Bool stringsIguais(char s1[], char s2[]);
if(stringsIguais("Casa", "Casa")){
printf(" São iguais
");
}else{
printf(" Não são iguais
");
}
return 0;
}
_Bool stringsIguais(char s1[], char s2[]){
if(s1 == s2){
return 1;
}else{
return 0;
}
}
Como ficaria caso eu quisse comparar duas palavras ou mais informadas pelo usuario?
Como comparo uma lista encadeda, tenho um programa de agenda eletronica e preciso tirar nomes repetidos
Eu fiz no gcc como eu sempre faço e quando as strings são verdadeiras aparece na tela do meu terminal 1 e 0, ou seja, "são iguais" e "não são iguais" e no falso dá certo como aparece 0 (não são iguai). Poderia explicar o que houve?
Eu tive que declarar duas variáveis tipo char para funcionar
Você explica em 15 min o que o meu professor não consegue explicar em 2 aulas hahaha
Sendo s1 diferente de \0 não precisa fazer && s2 != \0
Porque se s1 for nulo (\0) encerra o ciclo e se s1 for diferente de \0 e s2 igual \0, s2 será diferente de s1 então encerrara o ciclo
Mas afinal, qual seria a string de boolean?
preciso muito saber.
olha, é assim: ce digita uma frase em codigo morse (ex: -.----.-.-.-.- (SEM ESPAÇO)) e depois ce pede quantos palavras ce quer para traduzir (imagina que aquilo so traduz 2 palavras mas ce fornece 4, 3 delas vao ser traduzidas e a outra nao). com essas palavras ce quer saber quantas frases traduzindo o codigo morse por completo ce consegue fazer (por exemplo, 2) e depois devolve esse valor na consola e ja está ... ja está como quem diz, que o meu não tá não
Vish! :D
Não seria melhor ter feito um laço for pra percorrer todas as posições do array e depois comparar?
É uma opção
E quando eu tenho uma string com mais de uma palavra e tenho que ver quantas vezes determinada palavra se repete nessa string?
Vamos chamar a sua string de 'frase' e a palavra que você procura de 'substring':
A substring tem sempre a mesma letra na frase, concorda? Então, você deve percorrer a frase com um laço de repetição, e quando encontrar a primeira letra da substring, criar um outro pequeno laço de repetição para analizar o tamanho da substring e armazenar a quantidade(incrementar +1). Exemplo: "mariANA e adriANA assistiram bANANAs de pijama" Nesta frase, a substring 'ana' apareceu 4 vezes. Tente você fazer.
se por dessa forma na função também fica bom? funcionou assim e eu achei o raciocínio mais fácil
_Bool virificarstring (char x[], char y[]) {
int i = 0;
int j = 0;
for ( ; y[j] != '\0' && x[i] != '\0' && x[i]==y[j]; ++i && ++j );
if (x[i] == y[j]) {
return 1;
}
else {
return 0;
}
O meu copilador ñ aceitou o tipo _Boll, somente quando coloquei tipo Int, o copilador rodou, se alguém puder me explicar, desde ja agradeço.
Fiz um pouco diferente:
#include
#include
int main(){
_Bool stringsIguais(char str1[], char str2[]);
if (stringsIguais("casa", "casa")){
printf("As strings sao iguais
");
}
else {
printf("As strings nao sao iguais
");
}
system("pause");
return 0;
}
_Bool stringsIguais(char str1[], char str2[]){
int contador = 0;
int igual = 0;
while (str1[contador] != '\0' || str2[contador] != '\0'){
if (str1[contador] == str2[contador]){
++igual;
}
++contador;
}
if (igual == contador){
return 1;
}
else {
return 0;
}
}
o modo que eu fiz
#include
#include
int main(void) {
// retornar um tipo booleano (0 - 1)
bool stringIguais(char s1[], char s2[]);
if (stringIguais("123", "123")) {
printf("Sao iguais
");
} else {
printf("Nao sao iguais
");
}
return 0;
}
bool stringIguais(char s1[], char s2[]) {
int i;
for (i = 0; s1[i]; i++) {
if (s1[i] != s2[i]) {
return false;
}
} return true;
}
hahaha acontece :D
no Dev C nao funciona por conta do _Bool,como resolver?
Eu uso funções que retornam inteiros (0 ou 1) ao invés de retornar um bool
usa "bool", se usar o _bool não da certo porque o compilador nao entende o tipo.
ex: bool PalavrasIguais(char a[ ], char b[ ]);
Realmente digitar e escrever ao mesmo tempo é muito dificil hsaushuashnausha
Alguem me responde ? Eu posso fazer assim -> if (palavra1[i] == palavra2[i]) na linha 24?
vc pode por o q quiser na parte de variavel BURRO
@@XL777uu ?
@@marcosgabriel2188 código
Olá! Eu fiz uma lógica um pouco diferente na parte do while, alguém consegue me dizer se ela está certa? Ou se tem algum caso que meu código não vai funcionar? Desde já agradeço :)
void stringsIguais(char s1[], char s2[]){
int i = 0, iguais = 1;
while(s1[i] != '\0' || s2[i] != '\0'){
if (s1[i] != s2[i]) iguais = 0;
i++;
}
if (iguais) printf("
As palavras SAO iguais :)");
else printf("
As palavras NAO SAO iguais :(");
}
Um resultado inesperado no g++ é:
tiago@tiago-RV415 ~/Documentos/Aula_de_C $ g++ Aula55.c -o Aula55 && ./Aula55
Aula55.c: In function ‘int main()’:
Aula55.c:6:3: error: ‘_Bool’ was not declared in this scope
_Bool stringsIguais(char s1[], char s2[]);
^
Aula55.c:8:34: error: ‘stringsIguais’ was not declared in this scope
if(stringsIguais("casa", "casa"))
^
Aula55.c: At global scope:
Aula55.c:24:1: error: ‘_Bool’ does not name a type
_Bool stringsIguais(char s1[], char s2[])
^
tiago@tiago-RV415 ~/Documentos/Aula_de_C $
_Bool stringsIguais(char s1[], char s2[]){
int i=0;
while(s1[i] != '\0' ||s2[i] !='\0'){
if(s1[i] != s2[i])
return false;
i++;
}
return true;
}
#acho que assim o código fica mais eficiente, Não?
sdds do meu amigo q ama pão com mortadela
# include
int main(void)
{
_Bool stringsIguais(char s1[], char s2[]);
if(stringsIguais("casa", "casa"))
{
printf("São iguais
");
}
else;
{
printf("Não são iguais
");
}
}
_Bool stringsIguais(char s1[], char s2[])
{
int i=0;
while(s1[i]==s2[i] && s1[i]!='\0' && s2[i]!='\0')
{
++i;
}
if(s1[i]=='\0' && s2[i]=='\0')
{
return 1;
}
else
{
return 0;
}
}
A execução
tiago@tiago-RV415 ~/Documentos/Aula_de_C $ gcc Aula55.c -o Aula55 && ./Aula55
São iguais
Não são iguais
tiago@tiago-RV415 ~/Documentos/Aula_de_C $
Não consegui rodar o programa ocmo esperado, ele simplesmente não fez nada, rsrs
Qual o erro aqui? :o Fiz tudo igual o.O
_Bool stringIguais(char s1[], char s2[]){
int i = 0;
while(s1[i] == s2[i] && s1[i] != '\0' && s2[i] != '\0')
i++;
if(s1[i] == '\0' && s2[i] == '\0')
return 1;
else
return 0;
}
void main(){
if(aula51_stringsIguais("casa", "casa"))
printf("Sao iguais
");
else
printf("Nao sao iguais
");
}
Com for fica melhor eu acho :)
int i;
for(i = 0; s1[i] == s2[i] && s1[i] != '\0' && s2[i] != '\0'; i++);
if(s1[i] == '\0' && s2[i] == '\0')
return 1;
else
return 0;
o meu compilador apresenta essa mensagem de erro quando compilo:
unknown type name 'bool'
alguem sabe o pq?
coloquei int ao inves de bool, e assim ele funcionou
Também apanhei com isso!
Faltou o include...
#include
Alvaro Ought Obrigada pela informação!
Estou bastante enferrujada em C... Decidi fazer essa revisão! As aulas são realmente muito boas! Informação nunca é demais. Antes tarde do que nunca! Concordo contigo que outras pessoas poderão incorrer no mesmo erro...
Alvaro Ought Em momento algum sonhei cobrar isso dele! Estou muito grata por terem compartilhado o conhecimento. Cabe aos espectadores postar/responder dúvidas acerca, de forma a enriquecer o conteúdo exposto. Eu mesma, sempre que sei, respondo a algo.
Muito obrigado, realmente vc tem razão tem que fazer o include
vídeo aula bem ruim
Ruim se você não acompanhou desde a aula 1...
Você só pode estar maluco.
Acompanhar desde a aula 1 por que se eu já sei o conteúdo dela? Se eu preciso de um conteúdo específico, eu não posso ver um curso completo para chegar no ep 50 e não entender nada...
Vídeo aula boa é Curso em Vídeo. Pena que não tem linguagem C
Não é porque você não entendeu que a video aula é ruim cara, cada um tem sua metodologia. EU achei a video aula muito boa, se você não conseguiu entender, talvez sua metodologia seja outra e se indentifique com outras videos aulas, mas para mim deu para entender perfeitamente.