viciado 1 Denunciar post Postado Setembro 11, 2009 Fiz um programinha para retornar o endereço da última ocorrência de ch na string, está dando erro "conflicting type" #include <stdio.h> #include <stdlib.h> #include <string.h> char *strrchr(char *str, char ch){ char *ptr = str + strlen(str) - 1; while(ptr>=str){ if(*ptr == ch) return ptr; else ptr--; } return NULL; } int main() { char s[30], ch; printf("String: \n"); gets(s); printf("Caracter: \n"); scanf("%c",&ch); printf("%d",strrchr(s,ch)); system("PAUSE"); return 0; } Compartilhar este post Link para o post Compartilhar em outros sites
Daniloinf 3 Denunciar post Postado Setembro 11, 2009 Brother, essa função strrchr já existe na string.h: _CRTIMP char* __cdecl strrchr (const char*, int) __MINGW_ATTRIB_PURE; Por isso esta dando esse erro. Renomeando a sua função você resolve esse problema. Lembrando que sua função retorna um endereço de memoria, logo, o seu printf("%d",strrchr(s,ch));vai imprimir uma coisa meio ilegivel... xD Fiz um programinha para retornar o endereço da última ocorrência de ch na string, está dando erro "conflicting type" #include <stdio.h> #include <stdlib.h> #include <string.h> char *strrchr(char *str, char ch){ char *ptr = str + strlen(str) - 1; while(ptr>=str){ if(*ptr == ch) return ptr; else ptr--; } return NULL; } int main() { char s[30], ch; printf("String: \n"); gets(s); printf("Caracter: \n"); scanf("%c",&ch); printf("%d",strrchr(s,ch)); system("PAUSE"); return 0; } Compartilhar este post Link para o post Compartilhar em outros sites
Henrique Barcelos 290 Denunciar post Postado Setembro 11, 2009 Na realidade esse função retorna um PONTEIRO e você está imprimindo um INT... esse é o "conflicting type error" Compartilhar este post Link para o post Compartilhar em outros sites
viciado 1 Denunciar post Postado Setembro 12, 2009 obrigado. Se um dia alguém quiser olhar o código #include <stdio.h> #include <stdlib.h> #include <string.h> char *strrch(char *str, char ch){ char *ptr = str + strlen(str) - 1; while(ptr>=str){ if(*ptr == ch) return ptr; else ptr--; } return NULL; } int main() { char s[30], ch; printf("String: \n"); gets(s); printf("Caracter: \n"); scanf("%c",&ch); printf("%p",strrch(s,ch)); system("PAUSE"); return 0; } Compartilhar este post Link para o post Compartilhar em outros sites