#1 04-23-2007 14:54:54

mmiles

Member

4140557
Skąd: B-stok / Ełk
Zarejestrowany: 03-08-2007
Posty: 10
Punktów :   

trzy funkcje dotyczące napisów

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.

funkcja:

1. strlen(napis1) - zwraca długość napisu

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();   
}

Ostatnio edytowany przez mmiles (04-25-2007 14:45:43)

Offline

 

Stopka forum

RSS
Powered by PunBB 1.2.23
© Copyright 2002–2008 PunBB
Polityka cookies - Wersja Lo-Fi


Darmowe Forum | Ciekawe Fora | Darmowe Fora
GotLink.pl