Pesquisar na Comunidade
Mostrando resultados para as tags ''char''.
Encontrado 20 registros
-
Olá pessoal, estou com uma dúvida no seguinte código.. a variavel C quando digito o caractere pela função "scanf" não aparece. Coloquei para rodar no codeblock e no replit, mas a variavel que eu digito para definir o valor de c fica vazia. O seguinte código que passo é o código do professor, que teoricamente deverias estar corrigido, mas mesmo assim ele dá o problema supracitado... Alguém pode me ajudar identificando o erro? aqui esta o código: Obs: quando removo as outras variaveis das linhas de código o char me dá o caractere que digito, quando mantenho as linhas das outras variaveis, ele não aparece. #include <stdio.h> #include <stdlib.h> #include <stdbool.h> void main(){ //Definindo Variáveis int a; float b; char c; bool d; //Passando Valores a = 5; b = 2.3; c = 'a'; d = true; //true = 1, false = 0 //Escrevendo na Tela printf("\n O valor de a = %d", a); printf("\n O valor de b = %.1f", b); printf("\n O valor de c = %c", c); printf("\n O valor de d = %d\n", d); //Lendo Valores scanf("%d", &a); scanf("%f", &b); scanf(" %c", &c); //Aqui adicionei um espaço antes do %C para limpar o buffer scanf("%d", &d); //Escrevendo na Tela printf("\n O valor de a = %d", a); printf("\n O valor de b = %.1f", b); printf("\n O valor de c = %c", c); printf("\n O valor de d = %d\n", d); //Pausando system("pause"); }
-
Gente estou começando a estudar linguagem em c/c++, e to com uma duvida, eu consigo usar uma variavel char em uma função for, estou tentatndo fazer com que para executar o resta do codigo o usuario precise se manifestar com seu nome e senha, o nome e senha preciso que seja em caracter, pois em numero fica chato kkkk, tentei fazer com variavel int e deu certo, mas ainda fica minha duvida, alguém pode me dar uma força? Obrigado!!!
-
Olá colegas, Meu problema é o seguinte. Estou recebendo os dados através de uma comunicação USART ("microcontrolador"), e ele está chegando em forma de string. Por exemplo: Buffer[] = {'1','2','3'}; Gostaria de armazenar estes dados em uma única variável, da forma: unsigned char var = 123; tentei fazer desta forma: var = 100*(Buffer[0]) + 10*(Buffer[1]) + (Buffer[2]); Porem não obtive êxito, ele me retornava uns valores estranhos. Alguém tem alguma ideia de como fazer?
- 2 respostas
-
Tudo bom pessoal? Então, estou tendo um problema no meu código, estou tentando fazer uma função retornar um char, porem, está aparecendo "Segmentation Fault" Alguém pode me ajudar? Código: char FuncA(char* x){ printf("\nInforme o nome do aluno\n"); scanf(" %[^\n]s", &x); return *x; }
-
Buenas pessoal Tenho que escrever um codigo que imprima lista de pratos, porem não sei como imprimir usando string, abaixo o codigo que fiz usando int para testar o codigo, se rodar ele vão ver que funciona. #include <stdio.h> int main(void){ struct lista { int prato; struct lista *proximo; }; struct lista p1, p2, p3, p4, p5; struct lista *inicio = &p1; p1.prato = 5;//"Risotos de Milao"; p2.prato = 10;//"Bruschetta"; p3.prato = 15;//"Alcachofras Romanas"; p4.prato = 20;//"Tortellini de Bolonha"; p5.prato = 25;//"Carpaccio"; p1.proximo = &p2; p2.proximo = &p3; p3.proximo = &p4; p4.proximo = &p5; p5.proximo = (struct lista *)0; while(inicio != (struct lista *)0){ printf("%i\n", inicio->prato); inicio = inicio->proximo; } getchar(); return 0; }
-
Olá a todos eu tenho que criar um jogo RPG de texto em C. Então eu resolvi usar uma função para escrever o texto com Sleep, porem a função escreve o texto e mais do que deveria. Como eu Conserto isso?. Meu código é esse: #include <stdio.h> #include <stdlib.h> #include<windows.h> int main() { char textogame(char text[100]); textogame("Hello world"); return 0; } char textogame(char text[100]){ int i; for(i=0;i<=text;i++){ printf("%c", text); Sleep(1000); } }
-
Boa noite, Estou a realizar um trabalho para a escola onde começo por pedir ao utilizador para indicar o numero de nomes que pretende colocar no programa. E estou com dificuldades em criar um vetor para guardar os nomes introduzidos pelo utilizador.
-
Pessoal, tava fazendo um exercício de C, e o livro pede pra escrever um programa que diz quantas letras tem a maior frase. Eu escrevi : #include <stdio.h> int main() { char a; int i = 0 ; int maior = 0; printf ("entre com uma frase ai : "); scanf (" %c", &a); while ( a != '.') { while ( a!= ' ' && a!= '.') { if (a != ',' && a!= ' ') i++; scanf (" %c", &a); printf ("."); } if (i> maior) { maior = i; } i=0; } printf ("a maior palavra tem %d digitos", maior); return 0; } O problema é : O programa não entende que é pra sair do laço " while ( a!= ' ' && a!= '.') " quando tem espaço. Então se eu digitar a frase : eu sou Caio. , o programa retorna que a frase tem 9 letras. Alguém pode dar uma luz? Não to entendendo porque o programa não " pula" o espaço ... EDIT : esse printf ("." ) ; foi só pra fazer testes.
-
Boa noite Srs, eu criei um buffer para escrever um registro em um arquivo e preciso de passar um inteiro para uma string (vetor de char), como faria isso? segue o código: void writeEA (ostream &stream, EstagioAluno &ea) { char buffer [1000]; short length; strcpy (buffer, ea.matricula); strcat(buffer, '|'); strcat(buffer, ea.nomeCompleto); strcat(buffer, '|'); strcat(buffer, ea.tipoEstagio); strcat(buffer, '|'); strcat(buffer, ea.nomeEmpresa); strcat(buffer, '|'); strcat(buffer, ea.cnpj); strcat(buffer, '|'); strcat(buffer, ea.nomeSupervisor); strcat(buffer, '|'); strcat(buffer, ea.dataInicio); strcat(buffer, '|'); strcat(buffer, ea.dataFim); strcat(buffer, '|'); strcat(buffer, ea.dataEntregaRelatorioParcial); strcat(buffer, ea.situacao); strcat(buffer, '|'); strcat(buffer, ea.horasPrevistas); strcat(buffer, '|'); strcat(buffer, ea.horasTotalizadas); strcat(buffer, '|'); strcat(buffer, ea.parecerFinal); strcat(buffer, '|'); length = (short) strlen(buffer); stream.write(&length, sizeof(length)); stream.write(buffer, length); }[\code] Os campos matricula, horasPrevistas e horasTotalizadas são int, consequentemente o strcpy não funciona, o que colocaria no lugar? desde já agradeço!
-
Estou a programar usando a biblioteca winsock2, criei de inicio um chat com cliente e servidor, em que quando o cliente envia uma mensagem, o servidor o identifica com o ip. Após entrar mais de um usuário, o ip pego através do socket cliente só retorna o ip do ultimo login. Gostaria de saber como identificar usuários por ip, e como dar disconect neles sem que todos sejam kikados. Desde já, grato.
-
- socket
- multiplos clientes
-
(e %d mais)
Tags:
-
Boa noite. Ao tentar compilar um arquivo básico, aonde devo transformar toda a frase em maiúscula e depois em minúscula, aparece-me o seguinte erro: L03EX03.c: In function ‘main’: L03EX03.c:14:2: warning: implicit declaration of function ‘strupr’ [-Wimplicit-function-declaration] strupr(frase); ^ L03EX03.c:16:37: warning: implicit declaration of function ‘strlwr’ [-Wimplicit-function-declaration] printf("\nFRASE EM MINUSCULO: %s", strlwr(frase)); ^ L03EX03.c:16:9: warning: format ‘%s’ expects argument of type ‘char *’, but argument 2 has type ‘int’ [-Wformat=] printf("\nFRASE EM MINUSCULO: %s", strlwr(frase)); ^ /tmp/cci4xclh.o: na função `main': L03EX03.c:(.text+0x54): referência indefinida para `strupr' L03EX03.c:(.text+0x81): referência indefinida para `strlwr' collect2: error: ld returned 1 exit status o código que eu fiz foi: #include <stdio.h> #include <string.h> #define MAX 200 int main () { char frase[MAX]; printf("Digite uma frase: "); fgets(frase, MAX, stdin); strupr(frase); printf("\nFRASE EM MAIUSCULO: %s", frase); printf("\nFRASE EM MINUSCULO: %s", strlwr(frase)); } Eu queria saber se o problema está no compilador (já que eu também não consegui utilizar o 'gets' em outro exercício) ou se é algum erro do código. Obrigado.
-
Salve, Esses dias precisei ordenar uma coluna de texto (string) delimitada no SQL Server. /** * funcOrdenaTextoDelimitado() * * ordena o conteúdo de uma string * * @author wellington rodrigues */ create function dbo.funcOrdenaTextoDelimitado(@texto varchar(4000), @separador varchar(1)) returns varchar(4000) as begin declare @tmp_table table(texto varchar(4000)); declare @posicao_delimitador int = 1; declare @inicio_pesquisa int = 1; declare @subtexto varchar(4000); set @texto = @texto + @separador; declare @texto_ordenado varchar(4000) = ''; while charindex(@separador, @texto, @inicio_pesquisa) > begin set @posicao_delimitador = charindex(@separador, @texto, @inicio_pesquisa); set @subtexto = substring(@texto, @inicio_pesquisa, @posicao_delimitador - @inicio_pesquisa); insert into @tmp_table(texto) values(@subtexto); set @inicio_pesquisa = @posicao_delimitador + 1; end set @texto_ordenado = stuff((select coalesce(texto + @separador, '') from @tmp_table order by ltrim(rtrim(texto)) asc for xml path('')), 1, ,''); set @texto_ordenado = substring(@texto_ordenado, , len(@texto_ordenado)); return @texto_ordenado; end go Espero que possa ser útil. []s
-
1-Eu tenho que armazenar na struct 5 bandas.Cada uma com suas informações como nome,quantidade de integrantes e etc.Como eu consigo pegar os nomes de cada uma delas,bem como suas informações.Eu tentei da forma abaixo e não consegui. #include<stdio.h> #include<stdlib.h> typedef struct banda{ char nome[30]; char tipo[20]; int quant_int; int posicao; }BANDA; void preenche(BANDA *ban){ int i; for( i=0;i<5;i++) { printf("Digite o nome da banda:"); gets(ban->nome); printf("Digite o tipo de musica:"); gets(ban->tipo); printf("Digite a quantidade de integrantes:"); scanf("%d",&ban->quant_int); printf("Digite a posicao no ranking:"); scanf("%d",&ban->posicao); } for(i=0;i<5;i++) { printf("Nome: %s",ban->nome); printf("tipo:",ban->tipo); printf("quantidade:",ban->quant_int); printf("posicao:",ban->posicao); } } int main(){ BANDA band; preenche(&band); }
- 3 respostas
-
Bom, sou iniciante na linguagem C, queria saber como fazer para escanear strings mas sem saber quantos caracteres essa string tem. Por exemplo, eu tenho que escrever um programa que dado uma frase tenho que determinar quantos caracteres são números mas sem ser informado o tamanho da string.
-
Criar um programa que leia o nome de pessoas e a sua profissão. Quando o usuário digitar “fim” no campo nome, o programa deve terminar. Ao terminar escrever o número de advogados cadastrados. Exemplo de tela de saída: Nome: Fernando Profissão: professor Nome: Luiz Profissão: advogado Nome: Marcos Profissão: advogado Nome: Ana Profissão: dentista Nome: fim O número de advogados cadastrados é 2. basicamente eu quero que ele reconheca profissao digitada e se for advogado ele some o total e se for professor so imprima quando digitar fim. Qualquer coisa q você digita ele considera como advogado. e quanda digita fim ele finaliza mais antes ele pede para escrever a profissao como eu posso resolver isso? segue abaixo o meu codigo. #include<iostream> #include <stdio.h> #include <string.h> using namespace std; int main(){ char nome [100]; char prof [100] ; int advogados; do{ cout<<"\nDigite Seu Nome: "; cin>>nome; cout<<"\nDigite Sua Profissao:"; cin>>prof; cout<< "\nNome:" <<nome; cout<<"\nProfissao: " <<prof<< "\n"; }while (strcmp(nome , "fim")); if ( !strcmp(prof, "advogado") ){advogados++;} { cout<<"Numero de Advogados: " <<advogados<< "\n";}}
-
eu posso comparar um vetor de char com um char dessa forma, ou há algum erro? for (i = 0; i <= j; i++) { if (palavra == palpite) palavra_chute = palpite;
- 1 resposta
-
- char
- vetorxchar
-
(e %d mais)
Tags:
-
Boa tarde, Tenho que fazer um programa em C++ que leia os caracteres de meu nome, imprima a pilha e depois imprima o inverso da pilha. O professor passou alguns algoritmos e pediu para fazermos isso, dei uma pesquisada na internet, alguns videos e cheguei no codigo abaixo, mas, tenho alguns erros que não encontro, ou algo de errado que estou fazendo. alguém pode me ajudar? Obs.: com numeros inteiros consegui fazer, mas com char.... #include <iostream> #include <conio.h> #include <stdio.h> #include <stdlib.h> using namespace std; int const MAX=1000; int pilha[MAX]; int tope; int pilha_tamanho(){ return tope+1; } bool pilha_vazia(){ if (tope==-1) return true; else return false; } bool pilha_cheia(){ if (tope==MAX-1) return true; else return false; } bool push (char &nom){ if (pilha_cheia()){ return false; }else{ pilha[tope]=nom; tope++; return true; } } bool pop (char nom){ if (pilha_vazia()){ return false; }else{ nom=pilha[tope]; tope--; return true; } } int main(){ int valor, i; char nom; cout<<"Empilhar"<<endl; push('d'); push('i'); push('o'); push('g'); push('o'); for(i=0; i<5; i++){ cout<<pilha[i]<<endl<<endl; } cout<<"Desempilhar"<<endl; while(pop(nom)){ cout<<valor<<endl<<endl; } cout<<"Tamanho da pilha: "<<pilha_tamanho(); return 0; }
-
Preciso acrescentar no gabarito abaixo se o aluno foi aprovado ou não, já li sobre o assunto, mas não consegui, alguém pode me ajudar? #include <stdio.h> #include <conio.h> #include <math.h> #include <ctype.h> int main() { char gab[5] = { 'B', 'D', 'A', 'C', 'A' }; char resp[5]; int qtalunos; int nota; int y, i; printf("Informe a quantidade de alunos: "); scanf("%d", &qtalunos); for(i=1; i<=qtalunos;i++) { nota=0; for(y=0;y<5;y++) { printf("Informe a resposta da pergunta %d: ", y+1); scanf("%s", &resp[y]); } for(y=0;y<5;y++) { if(toupper(resp[y])==gab[y]) { nota = nota + 2; } } printf("A nota do aluno %d e: %d\n\n", i, nota); } getch(); }
-
Tenho esse código de uma agenda pronto em C++, e quero adicionar uma opção para excluir os dados cadastrados, alguém pode me ajudar? #include <stdio.h> #include <string.h> #include <stdlib.h> #include <conio.h> #include <ctype.h> typedef struct Agenda { char nome[50]; char fone[20]; char fonecelular[20]; char email[80]; }T_agenda; // prototipos void inclusao(void); void Listar(void); void quick_struct(int); void qs_struct(int,int); void ordenar(void); void pesquisar(void); char Validaresp(); static int qtd = 0; T_agenda Tab[100]; FILE *fp; // ================================================================= // ======Incluir dados no arquivo ================================== void inclusao(void){ int total = 0, retorno; char op = 's'; if ((fp = fopen("agenda.db", "a")) == NULL) { printf ("O arquivo da lista não pode ser aberto!\n"); printf ("Insira dados!\n"); getch(); exit(1); } while ((total < 100) && (op == 's')) { printf ("Digite o nome: "); gets(Tab[total].nome); printf ("Digite o numero do telefone fixo: "); gets(Tab[total].fone); printf ("Digite o numero do telefone celular: "); gets(Tab[total].fonecelular); printf ("Digite o E-mail: "); gets(Tab[total].email); retorno = fwrite (&Tab[total], sizeof(struct Agenda) ,1,fp); if (retorno == 1) { printf(" \nGravacao ok ! "); } total++; op = Validaresp(); qtd++; } fclose (fp); } //====================================================================== // ======Valida resposta =============================================== char Validaresp() { char op; do { printf(" \nDeseja inserir novos dados? [s ou N] ? " ); op = getch(); printf("\n" ); } while (op != 's' && op != 'n'); return op; } //====================================================================== // ======Organizar em ordem alfabetica ================================= void ordenar(void){ T_agenda vet; int aux,i,j,k,retorno; char *str, *str2, *straux; aux = qtd; // aux recebe a quantidade de contatos inscritos for ( i = 0 ; i < aux ; i++ ){ str = Tab.nome; for ( j = i+1 ; j < aux ; j++ ){ str2 = Tab[j].nome; if ( strcmp ( str, str2 ) > 0 ){ vet = Tab; Tab = Tab[j]; Tab[j] = vet; } } } remove("agenda.db"); if ((fp = fopen("agenda.db", "w+")) == NULL){ printf ("ERRO!\n"); getch(); exit(1); } for ( k = 0 ; k < aux ; k++ ){ retorno = fwrite (&Tab[k], sizeof(struct Agenda) ,1,fp); if (retorno != 1) { printf(" \nERRO ! "); } } fclose(fp); printf("\nLista Ordenada! \n"); getch(); } //====================================================================== // ======Pesquisar contato pelo nome =================================== void pesquisar(void){ int indice = 0, retorno = 1, cont = 0; char nome[80],op; if ((fp = fopen("agenda.db", "r")) == NULL){ printf ("O arquivo da lista não pode ser aberto!\n"); printf ("Insira dados!\n"); getch(); exit(1); } printf ("Digite o nome: "); gets(nome); retorno = fread(&Tab[indice], sizeof(struct Agenda), 1, fp); while (retorno == 1){ if (strcmp(nome, Tab[indice].nome) == 0 ){ printf ("\nNome ..: %s\nFone ..: %s\nE-mail ..: %s\n", nome, Tab[indice].fone, Tab[indice].email); cont++; } indice++; retorno = fread(&Tab[indice], sizeof(struct Agenda), 1, fp); } if(cont == 0){ printf("não há contatos com este nome!\n"); } getch(); fclose(fp); } //====================================================================== // ======Pesquisar Telefone ============================================ void pesquisarfone(void){ int indice = 0, retorno = 1, cont = 0; char fone[80],op; if ((fp = fopen("agenda.db", "r")) == NULL){ printf ("O arquivo da lista não pode ser aberto!\n"); printf ("Insira dados!\n"); getch(); exit(1); } printf ("Digite o telefone fixo: "); gets(fone); retorno = fread(&Tab[indice], sizeof(struct Agenda), 1, fp); while (retorno == 1){ if (strcmp(fone, Tab[indice].fone)==0){ printf ("\nNome ..: %s\nFone ..: %s\nE-mail ..: %s\n", Tab[indice].nome, Tab[indice].fone, Tab[indice].email); cont++; } indice ++; retorno = fread(&Tab[indice], sizeof(struct Agenda), 1, fp); } if(cont == 0){ printf("não há contatos com este Telefone!\n"); } getch(); fclose(fp); } void pesquisarfonecelular(void){ int indice = 0, retorno = 1, cont = 0; char fone[80],op; if ((fp = fopen("agenda.db", "r")) == NULL){ printf ("O arquivo da lista não pode ser aberto!\n"); printf ("Insira dados!\n"); getch(); exit(1); } printf ("Digite o telefone celular: "); gets(fone); retorno = fread(&Tab[indice], sizeof(struct Agenda), 1, fp); while (retorno == 1){ if (strcmp(fone, Tab[indice].fone)==0){ printf ("\nNome ..: %s\nFone ..: %s\nE-mail ..: %s\n", Tab[indice].nome, Tab[indice].fone, Tab[indice].email); cont++; } indice ++; retorno = fread(&Tab[indice], sizeof(struct Agenda), 1, fp); } if(cont == 0){ printf("não há contatos com este Telefone!\n"); } getch(); fclose(fp); } //====================================================================== // ======Pesquisar contato por Email =================================== void pesquisaremail(void){ int indice = 0, retorno = 1, cont =0; char email[80],op; if ((fp = fopen("agenda.db", "r")) == NULL){ printf ("O arquivo da lista não pode ser aberto!\n"); printf ("Insira dados!\n"); getch(); exit(1); } printf ("Digite o E-mail: "); gets(email); retorno = fread(&Tab[indice], sizeof(struct Agenda), 1, fp); while (retorno == 1){ if (strcmp(email, Tab[indice].email)==0){ printf ("\nNome ..: %s\nFone ..: %s\nE-mail ..: %s\n", Tab[indice].nome, Tab[indice].fone, Tab[indice].email); cont++; } indice ++; retorno = fread(&Tab[indice], sizeof(struct Agenda), 1, fp); } if(cont == 0){ printf("não há contatos com este Email!\n"); } getch(); fclose(fp); } //====================================================================== // ======Lista os contatos cadastrados ================================= void Listar(void){ int i = 0, retorno; if ((fp = fopen("agenda.db", "r")) == NULL) { printf ("O arquivo da lista não pode ser aberto!\n"); printf ("Insira dados!\n"); getch(); exit(1); } retorno = fread(&Tab, sizeof(struct Agenda), 1, fp); // fread retorna a quantidade de itens ... while ( retorno == 1) { printf("\n Nome ..: %s", Tab.nome); printf("\n Telefone fixo ..: %s", Tab.fone); printf("\n Telefone celular ..: %s", Tab.fonecelular); printf("\n E-mail ..: %s\n", Tab.email); i++; retorno = fread(&Tab, sizeof(struct Agenda), 1, fp); } printf(" \n\n %d Contatos salvos!\n", i); getch(); fclose(fp); } //====================================================================== // ======Menu ========================================================== void menu(void){ char op; int teste; if ((fp = fopen("agenda.db", "r")) != NULL){ qtd = 0; do { teste = fread(&Tab, sizeof(struct Agenda), 1, fp); qtd++; }while ( teste == 1 ); qtd--; } do{ system("cls"); printf("\n(1)Incluir\n(2)Listar\n(3)Ordenar por nome\n(4)Pesquisar por nome\n"); printf("(5)Pesquisar por telefone fixo\n(6)Pesquisar por telefone celular\n(7)Pesquisar por E-mail\n(8)Qualquer outra tecla para sair\n\n"); op = getch(); switch(op){ case '1': inclusao(); break; case '2': Listar(); break; case '3': ordenar(); break; case '4': pesquisar(); break; case '5': pesquisarfone(); break; case '6': pesquisarfonecelular(); break; case '7': pesquisaremail(); break; default: exit(1); } }while (op < '7'); } int main (){ int var; if(var == 27){ exit(1);} menu(); system("pause"); }
-
Boa noite galera, estou com uma dúvida em um algorítimo, na hora de comparar uma posição em um vetor de char com outra posição de outro vetor de char Segue abaixo o algoritimo: #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <string.h> int main() { char cadeia[16]; int i; char aux; char padrão[3]; //fornecimento do padrão for(i=0; i<=3;i++){ printf("Entre com a letra do padrão na pos. %d!\n",i+1); scanf("%c",&aux); fflush(stdin); if ((aux!='A') && (aux!='G') && (aux!='T') && (aux!='C')){ printf("Caracter invalido, favor digitar novamente\n"); i--; } else{ padrão==aux; } } //preenchimento do vetor da cadeia de DNA for(i=0; i<16;i++){ printf("Entre com a letra correspondente da cadeia na pos. %d!\n",i+1); scanf("%c",&aux); fflush(stdin); if ((aux!='A') && (aux!='C') && (aux!='G') && (aux!='T')){ printf("Caracter invalido, favor digitar novamente\n"); i--; } else{ cadeia==aux; } } //verificação for (i=0; i<12; i++){ //printf("Yo\n"); if (cadeia==padrão[0]) && (cadeia[i+1]==padrão[1]) && (cadeia[i+2]==padrão[2]) && (cadeia[(i+3)]==padrão[3])){ printf("padrão identificado a partir da posicao &d\n",i); } } return 0; } O erro está no if de //verificação, ele não consegue comparar, alguém ai sabe o que têm de errado?