Jump to content
Sign in to follow this  
joey1988

C segédkódok

Recommended Posts

Az egyetemen ennek nagyon nagy hasznát vesszük programozás 1-ből, példa függvények, és használatuk. Sok sikert hozzá! :)

/* Ezt magam segítségére csináltam, de használjátok egészséggel mert
előfordulhatnak ezek és akkor legalább nem kell velük szarakodni, hanem
elég csak kimásolni. SteMa */

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>

int i,o;

/* Szokásos getline, amit a lapon csak "szabvánbemenetként" említenek,
de nem tudni miért */
int getline(char s[],int lim)
{
        int c,i;
        for(i=0;i<lim&&(c=getchar())!=EOF&&c!='\n';++i)s[i]=c;
        s[i]='\';
        while(c!=EOF&&c!='\n')c=getchar();
  return(i);
}

/* Visszaadja hány szó van az "s" sztringben, függetlenül attól,
hány szóköz sorváltás vagy tab válaszja el azokat */
int szsz(char s[])
{
  int szavak=0,benn=0;
  for(i=0;i<strlen(s);i++)
  {
    switch(s[i])
    {
      case ' ': case '\n': case '\t': {benn=0; break;}
      default: if(benn==0) {benn=1; szavak++;}
    }
  }
  return szavak;
}

/* Megadsz egy bemenet sztringet "si" és a kimenetbe "so",
az adott sorszámú szót rakja az első stringből. For ciklussal
az szsz-el kombinálva végig lehet haladni a szavakon így. */
void szo(char si[],char so[],int num)
{
  int szavak=0,benn=0,kezd;
  for(i=0;i<strlen(si);i++)
  {
    switch(si[i])
    {
      case ' ': case '\n': case '\t': {benn=0; break;}
      default: if(benn==0) 
      {
        benn=1; 
        szavak++; 
        if(szavak==num) 
        {
          kezd=i;
      do {so[i-kezd]=si[i];i++;} while(si[i]!=' '&&si[i]!='\t'&&si[i]!='\n');
        }
      }
    }
  }
}

/* karakter kisbetüssé alakítása, ékezetes karaktereké is
hogy sztringet alakíts át azon végig kell haladni:
for(i=0;i<strlen(sztring);i++) sztring[i]=lower(sztring[i]) */
int lower(int c)
{
  if(c>='A'&&c<='Z') return(c+('a'-'A')); else
  switch(c)
  {
    case'™':return '”';break;
    case'š':return '�';break;
    case'ŕ':return '˘';break;
    case'Š':return '‹';break;
    case'é':return 'Ł';break;
    case'�':return '‚';break;
    case'µ':return ' ';break;
    case'ë':return 'ű';break;
    case'Ö':return 'ˇ';break;
    default: return(c);
  }
}

/* karakter nagybetüssé alakítása, ékezetes karaktereké is
hogy sztringet alakíts át azon végig kell haladni:
for(i=0;i<strlen(sztring);i++) sztring[i]=upper(sztring[i]) */
int upper(int c)
{
  if(c>='a'&&c<='z') return(c-('a'-'A')); else
  switch(c)
  {
    case'”':return '™';break;
    case'�':return 'š';break;
    case'˘':return 'ŕ';break;
    case'‹':return 'Š';break;
    case'Ł':return 'é';break;
    case'‚':return '�';break;
    case' ':return 'µ';break;
    case'ű':return 'ë';break;
    case'ˇ':return 'Ö';break;
    default: return(c);
  }
}

/* megnézi, hogy "s" sztringben van-e "c" karakter, 1-et ad vissza
ha van, 0-t ha nincs */
int olyan(char c, char s[])
{
  for(i=0;i<strlen(s);i++) if(c==s[i]) return 1;
  return 0;
}

/* egy kis próba a dolgokra */
void main(void)
{
  char str[128],str2[128];
  getline(str,127);
  printf("szavak száma: %d\n",szsz(str));
  szo(str,str2,2);
  for(i=0;i<strlen(str2);i++) str2[i]=upper(str2[i]);
  printf("%s\n",str2);

  /* megnézi, hogy abban, hogy "va.le" van-e pont, naná, hogy 1-el tér vissza */
  printf("%d",olyan('.',"va.le")); 
}

Share this post


Link to post
Share on other sites

nekem is van egy pár kisebb munkám, ha érdekel vkit, akkor itt megtekintheti:

http://std.extra.hu/dolgok/index.php?dirpath=./C&order=0

 

(nagyrészt ANSI C-ben vannak megírva)

Share this post


Link to post
Share on other sites

printf("kössz!"); :D

Share this post


Link to post
Share on other sites

joey1988 nem gondoltam h Bauer tanárúr getline fvvel itt fogok újra találkozni. LOL

Share this post


Link to post
Share on other sites

Anno elsős Kandós kiscsikó koromban ilyen kis gyerekjátékokat gyártottam... gyakorlásnak jó volt. Ha valakit érdekel töltse le nyugodtan:

 

törölve

Share this post


Link to post
Share on other sites

én most töltöm, kiváncsi vagyok

Share this post


Link to post
Share on other sites

Szólánc játék forráskódjára lenne szükségem Cben valaki esetleg tudna ebben segíteni, hogy kell egy ilyet megkódolni?

Share this post


Link to post
Share on other sites

Mármint mire gondolsz?Megadsz szavakat, és a következő szónak az utolsó szó utolsó karakterével kell kezdődnie?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Bejelentkezés

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×