Ir para conteúdo

Pesquisar na Comunidade

Mostrando resultados para as tags ''ponteiros''.

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Todas as áreas do Fórum

  • Q&A Desenvolvimento
    • Perguntas e respostas rápidas
  • Desenvolvimento Web
    • Desenvolvimento frontend
    • Javascript
    • PHP
    • Ruby
    • Python
    • Java
    • .NET
    • Docker, Kubernets e outros ambientes
    • Desenvolvimento com Wordpress
    • Desenvolvimento de apps
    • Desenvolvimento ágil
    • Desenvolvimento de Games
    • Banco de Dados
    • Design e UX
    • Algoritmos & Outras Tecnologias
  • Entretenimento e uso pessoal
    • Segurança & Malwares
    • Geral
    • Boteco iMasters

Encontrar resultados em...

Encontrar resultados que...


Data de Criação

  • Início

    FIM


Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Data de Registro

  • Início

    FIM


Grupo


Google+


Hangouts


Skype


Twitter


deviantART


Github


Flickr


LinkedIn


Pinterest


Facebook


Site Pessoal


Localização


Interesses

Encontrado 3 registros

  1. Eu estive fazendo um programa em C que lia a string1 e apagava a primeira ocorrência da string2. Na string1:"O Rato Roeu a Roupa" se eu colocar "Ra" na string2, o programa apaga corretamente, sem erros. Mas se eu colocar "Ro" na string2, ele dá erro e fecha. Segue abaixo o código comentado: #include <stdio.h> #include <string.h> char *StrDelStr(char *s1, char *s2);//essa função deve apagar a primeira ocorrencia de s2 em s1 int main(void) { char string1[60], string2[30]; printf("digite uma string\n> "); gets(string1); fflush(stdin); //pega a primeira string printf("digite uma outra string menor\n> "); gets(string2); fflush(stdin); //pega a segunda string printf("\nstring ja transformada\n> %s\n", StrDelStr(string1, string2)); return 0; } char *StrDelStr(char *s1, char *s2) { int ocorrencia, i, j, tamanho_s2=strlen(s2), concordancia_s1_s2; char *ptr1=s1, *ptr2=s2; //*ptr1 vai ser equivalente a s1 e *ptr2 vai ser equivalente a s2 for(ocorrencia=i=j=concordancia_s1_s2=0;*ptr1!='\0';*ptr1++, ptr2=s2)//ao invés de usar o s1[i]!='\0' eu usei o *ptr1!='0' para percorrer a { //string, pq depois tenho que apagar os caracteres e o ptr2 é sempre zerado if(ocorrencia==0&&*ptr1==*ptr2)//aqui verifica se eu já apaguei algo antes e se *ptr1 é igual a *ptr2 { while(*ptr1==*ptr2)//se o if for atendido vai inciar o while com a condição de *ptr1==*ptr2 { j++; //o j vai ser adicionado concordancia_s1_s2++; //tanto como o inteiro concordancia_s1_s2 *ptr1++; *ptr2++; //aqui os ponteiros avançam uma posição char } if(concordancia_s1_s2==tamanho_s2) //quando o while for quebrado, esse if verifica se o concordancia_s1_s2 é igual ao tamnho de s2 ocorrencia++; //se for, ocorrencia é adicionado impedindo o acesso à esse if else ptr1-=j; //caso não seja do mesmo temaznho, significa que não era s2 por completo dentro de s1, logo, *ptr regride } //à posição que estava antes de entrar nesse if s1[i++]=*ptr1;//*ptr é escrito em i, que logo depois é adicionado } s1[i]='\0'; //após tudo, é colocado um delimitador no final da string return s1; //e s1 é retornado }
  2. Dougg_Ghost

    Ajuda em Ponteiros e funções

    Basicamente, tenho esse exercício (que foi passado em duas provas de C na faculdade), e nas duas acabei deixando em branco por não ter ideia de como fazer (nem como começar), não queria pedir resolução, mas sim explicação e se possível uma ajuda com código. Realmente não tenho ideia do que fazer por isso não coloquei meu código. Segue enunciado: Escreva uma função remove_dup(floatv[],int n) que receba o vetor e verifique a existência de elementos duplicados. Caso não existam elementos duplicados retorne 0. Caso existam, remova estes elementos (deixando apenas um) e retorne o número de elementos removidos.
  3. Tenho um trabalho da faculdade e não consigo fazer rodar o programa corretamente. Quando eu coloco o cpf, na hora de imprimir sai um número aleatório. Creio que possa ser por falta de memória pois se coloco um número menor ele sai certo, porém não consigo adicionar memória em cpf. Obs: ainda não fiz a parte dos menores e da medial do grupo e a parte de imprimir em tabela pois não consegui fazer funcionar nem um básico mas se alguém souber essa parte também e puder me ajudar agradeço!! #include <stdio.h> #include <stdlib.h> main(){ struct funcionarios{ int *cpf; char nome[30]; int nascimento; float salario; }; int aux=0; //para testar se for 0 antes de armazenar o cpf struct funcionarios *func; int qtdLeitura=0, i=0, cont=0; func = ((struct funcionarios *) (malloc(sizeof(struct funcionarios) * 1))); while(1){ printf("Digite o cpf %d: ", i+1); scanf("%d", &aux); if(aux!= 0){ func.cpf = aux; fflush(stdin); } else{ break; } if(func != NULL){ qtdLeitura++; func = ((struct funcionarios *) realloc(func, sizeof(struct funcionarios) *(qtdLeitura+1))); } printf("Digite o nome %d: ", i+1); scanf("%s", func.nome); printf("Digite o nascimento %d: ",i+1); scanf("%d", &func.nascimento); printf("Digite o salario %d: ",i+1); scanf("%f", &func.salario); cont++; i++; } printf("\n\n"); for(i=0;i<cont;i++){ printf("Cpf %d:%d \n",i+1, func.cpf); printf("Nome %d: %s\n",i+1, func.nome); printf("Nascimento %d: %d\n",i+1, func.nascimento); printf("Salario %d: %.2f\n",i+1, func.salario); } }
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.