- C Helpdesk http://www.chelpdesk.pun.pl/index.php - Programy http://www.chelpdesk.pun.pl/viewforum.php?id=5 - trzy funkcje dotyczące napisów http://www.chelpdesk.pun.pl/viewtopic.php?id=27 |
mmiles - 04-23-2007 12:54:54 |
siemanko:) ja wiem wy wiecie i kazdy we wsi wie ze te funkcje są gotowe zawarte w bibliotece <string.h> ale mielsimy na ps-kach za zadanie napisać własnie te 3 funkcje samemu, wiec postanowiłem je tu zamieścic, może komuś przyda sie to co tam jest. Kod:#include <stdio.h> #include <string.h> int my_strlen(char* s1) { int dl=0; char *p; p=s1; while (*p) { dl++; p++; } return dl; } main() { char s1[100]; int i; printf("Podaj wyraz\n"); scanf("%s", s1); i = my_strlen(s1); if (i == 1) printf("\ndlugosc to %i znak", i); if (i > 1 && i < 5) printf("\ndlugosc to %i znaki", i); if (i > 4) printf("\ndlugosc to %i znakow", i); getchar(); getchar(); return 0; } 2. strcat(napis1, napis2) - łączy napis1 z napisem2 wynik łączenia przypisany zostaje do napis1, w przypadku mego kodu jest to odwrotnie :) Kod:#include <string.h> #include <stdio.h> char *my_strcat( char* s1, char* s2) { char *p=s2; char *q=s1; while (*p) ++p; while (*p++ = *q) q++; return s2; } main() { char s1[10]; char s2[100]; printf("Podaj wyraz1\n"); scanf ("%s", s1); printf("podaj wyraz2\n"); scanf ("%s", s2); printf("\nwynik dzialania funkcji to: %s", my_strcpy(s1,s2)); getchar(); getchar(); } 3. strcpy(napis1, napis2) - funkcja ta jak mozna sie domyslic kopiuje jedn wyraz na miejsce drugiego, w przypadku oryginału napis2 jest kopiowany na napis1 w przypadku mojego kodu jest to odwrotnie ;) Kod:#include <string.h> #include <stdio.h> char* my_strcpy(char* s1, char* s2) { int dl_1, dl_2, j=0; for(int i=0; i <= strlen(s2); i++) { s1[i] = s2[j]; j++; } return s1; } main() { char s1[10]; char s2[10]; scanf("%s", s1); scanf("%s", s2); printf("\n%s", my_strcpy(s1,s2)); getchar(); getchar(); } |