Witamy na forum PC Format Zapraszamy do REJESTRACJI


Użytkownicy przeglądający ten wątek: 1 gości

pomoc w sprawie kodu

#1
pomoc w sprawie kodu
Mam do wykonania zadanie w c, doszedlem juz do pewnego etapu, ale niestety utknalem... otoz moj program szyfruje i deszyfrowywuje tekst, problemem jest to ze tekst ten ''ucina sie" na spacjach...
Kod PHP:
#include <stdio.h>
#include <string.h>

void wczytaj(char*);
void szyfrowanie1(void);
void szyfrowanie2(void);
void szyfrowanie3(void);
void deszyfrowanie1(void);
void deszyfrowanie2(void);
void deszyfrowanie3(void);

int main()
{
    
char opcja;
    
start:
    
printf("Wybierz tryb:\n");
    
printf("1) Szyfrowanie 1,\n");
    
printf("2) Szyfrowanie 2,\n");
    
printf("3) Szyfrowanie 3,\n");
    
printf("4) Deszyfrowanie 1,\n");
    
printf("5) Deszyfrowanie 2,\n");
    
printf("6) Deszyfrowanie 3,\n");
    
scanf("%c",&opcja);
    if(
opcja=='1')
        
szyfrowanie1();
    if(
opcja=='2')
        
szyfrowanie2();
    if(
opcja=='3')
        
szyfrowanie3();
    if(
opcja=='4')
        
deszyfrowanie1();
    if(
opcja=='5')
        
deszyfrowanie2();
    if(
opcja=='6')
        
deszyfrowanie3();
    
goto start;
}

void wczytaj(char *tab)
{
    
printf("Podaj ciag znakow:\t");
    
scanf("%s",tab);
}

void szyfrowanie1(void)
{
    
char ciag[100],wynik[100];
    
int i,dl;
    
wczytaj(ciag);
    
dl=strlen(ciag);
    for(
i=0;i<=dl/2+1;i++)
    {
        if(
ciag[2*i]==0) break;
        
wynik[i]=ciag[2*i];
        if(
ciag[2*i+1]==0) break;
        
wynik[dl-1-i]=ciag[2*i+1];
    }
    
wynik[dl]=0;
    
printf("Wynik szyfrowania 1:\t%s\n",wynik);
}

void szyfrowanie2(void)
{
    
char ciag[100],wynik[100];
    
int i,dl;
    
wczytaj(ciag);
    
dl=strlen(ciag);
    for(
i=0;i<=dl;i+=2)
    {
        if(
ciag[i+1]==0)
        {
            
wynik[i]=ciag[i];
            break;
        }
        
wynik[i]=ciag[i+1];
        
wynik[i+1]=ciag[i];
    }
    
wynik[dl]=0;
    
printf("Wynik szyfrowania 2:\t%s\n",wynik);
}

void szyfrowanie3(void)
{
    
char ciag[100],wynik[100];
    
int i,dl;
    
wczytaj(ciag);
    
dl=strlen(ciag);
    for(
i=0;i<dl;i++)
    {
        
wynik[i]=ciag[i]+10;
    }
    
wynik[dl]=0;
    
printf("Wynik szyfrowania 3:\t%s\n",wynik);
}

void deszyfrowanie1(void)
{
    
char ciag[100],wynik[100];
    
int i,dl;
    
wczytaj(ciag);
    
dl=strlen(ciag);
    for(
i=0;i<=dl;i++)
    {
        
wynik[2*i]=ciag[i];
        
wynik[2*i+1]=ciag[dl-1-i];
    }
    
wynik[dl]=0;
    
printf("Wynik deszyfrowania 1:\t%s\n",wynik);
}

void deszyfrowanie2(void)
{
    
char ciag[100],wynik[100];
    
int i,dl;
    
wczytaj(ciag);
    
dl=strlen(ciag);
    for(
i=0;i<=dl;i+=2)
    {
        if(
ciag[i+1]==0)
        {
            
wynik[i]=ciag[i];
            break;
        }
        
wynik[i]=ciag[i+1];
        
wynik[i+1]=ciag[i];
    }
    
wynik[dl]=0;
    
printf("Wynik deszyfrowania 2:\t%s\n",wynik);
}

void deszyfrowanie3(void)
{
    
char ciag[100],wynik[100];
    
int i,dl;
    
wczytaj(ciag);
    
dl=strlen(ciag);
    for(
i=0;i<dl;i++)
    {
        
wynik[i]=ciag[i]-10;
    }
    
wynik[dl]=0;
    
printf("Wynik deszyfrowania 3:\t%s\n",wynik);

prosze o pomoc!
 System operacyjny: windows_vista Przeglądarka: firefox
#2
RE: pomoc w sprawie kodu
funkcja gets() i fgets() z C powinna pomóc.

char *fgets(char *str, int size, FILE *stream);
http://pl.wikibooks.org/wiki/C/fgets

char *gets(char *str); (przy użyciu tej funkcji kompilator c++ może się "buntować")
http://pl.wikibooks.org/wiki/C/gets
 System operacyjny: windows_vista Przeglądarka: firefox
#3
RE: pomoc w sprawie kodu
Ok, dzieki welkie, dziala tak jak powinno... Wstawiam poprawiona wersje, moze sie to komus przyda...
Kod PHP:
#include <stdio.h>
#include <string.h>

void wczytaj(char *tab);
void szyfrowanie1(void);
void szyfrowanie2(void);
void szyfrowanie3(void);
void deszyfrowanie1(void);
void deszyfrowanie2(void);
void deszyfrowanie3(void);

int main()
{
    
char opcja;
    
start:
    
printf("Wybierz tryb:\n");
    
printf("1) Szyfrowanie 1,\n");
    
printf("2) Szyfrowanie 2,\n");
    
printf("3) Szyfrowanie 3,\n");
    
printf("4) Deszyfrowanie 1,\n");
    
printf("5) Deszyfrowanie 2,\n");
    
printf("6) Deszyfrowanie 3,\n");
    
scanf("%c",&opcja);
    if(
opcja=='1')
        
szyfrowanie1();
    if(
opcja=='2')
        
szyfrowanie2();
    if(
opcja=='3')
        
szyfrowanie3();
    if(
opcja=='4')
        
deszyfrowanie1();
    if(
opcja=='5')
        
deszyfrowanie2();
    if(
opcja=='6')
        
deszyfrowanie3();
    
goto start;
}

void wczytaj(char *tab)
{
printf("Podaj ciag znakow:\t");
fgets(tab,100,stdin);
fgets(tab,100,stdin);
tab[strlen(tab)-1]=0;
}

void szyfrowanie1(void)
{
    
char ciag[100],wynik[100];
    
int i,dl;
    
wczytaj(ciag);
    
dl=strlen(ciag);
    for(
i=0;i<=dl/2+1;i++)
    {
        if(
ciag[2*i]==0) break;
        
wynik[i]=ciag[2*i];
        if(
ciag[2*i+1]==0) break;
        
wynik[dl-1-i]=ciag[2*i+1];
    }
    
wynik[dl]=0;
    
printf("Wynik szyfrowania 1:\t%s\n",wynik);
}

void szyfrowanie2(void)
{
    
char ciag[100],wynik[100];
    
int i,dl;
    
wczytaj(ciag);
    
dl=strlen(ciag);
    for(
i=0;i<=dl;i+=2)
    {
        if(
ciag[i+1]==0)
        {
            
wynik[i]=ciag[i];
            break;
        }
        
wynik[i]=ciag[i+1];
        
wynik[i+1]=ciag[i];
    }
    
wynik[dl]=0;
    
printf("Wynik szyfrowania 2:\t%s\n",wynik);
}

void szyfrowanie3(void)
{
    
char ciag[100],wynik[100];
    
int i,dl;
    
wczytaj(ciag);
    
dl=strlen(ciag);
    for(
i=0;i<dl;i++)
    {
        
wynik[i]=ciag[i]+10;
    }
    
wynik[dl]=0;
    
printf("Wynik szyfrowania 3:\t%s\n",wynik);
}

void deszyfrowanie1(void)
{
    
char ciag[100],wynik[100];
    
int i,dl;
    
wczytaj(ciag);
    
dl=strlen(ciag);
    for(
i=0;i<=dl;i++)
    {
        
wynik[2*i]=ciag[i];
        
wynik[2*i+1]=ciag[dl-1-i];
    }
    
wynik[dl]=0;
    
printf("Wynik deszyfrowania 1:\t%s\n",wynik);
}

void deszyfrowanie2(void)
{
    
char ciag[100],wynik[100];
    
int i,dl;
    
wczytaj(ciag);
    
dl=strlen(ciag);
    for(
i=0;i<=dl;i+=2)
    {
        if(
ciag[i+1]==0)
        {
            
wynik[i]=ciag[i];
            break;
        }
        
wynik[i]=ciag[i+1];
        
wynik[i+1]=ciag[i];
    }
    
wynik[dl]=0;
    
printf("Wynik deszyfrowania 2:\t%s\n",wynik);
}

void deszyfrowanie3(void)
{
    
char ciag[100],wynik[100];
    
int i,dl;
    
wczytaj(ciag);
    
dl=strlen(ciag);
    for(
i=0;i<dl;i++)
    {
        
wynik[i]=ciag[i]-10;
    }
    
wynik[dl]=0;
    
printf("Wynik deszyfrowania 3:\t%s\n",wynik);

 System operacyjny: windows_vista Przeglądarka: firefox
#4
RE: pomoc w sprawie kodu
lol instrukcja goto

w swoich wszystkich programach nigdy nie używałem goto Wesoły
bo nie jest mi ona potrzeba, idzie ją zastąpić o wiele lepszymi rozwiązaniami...
 System operacyjny: windows_xp_2003 Przeglądarka: opera
#5
RE: pomoc w sprawie kodu
To prawda, nie powinno się nadużywać goto, a najlepiej to zapomnieć o jej istnieniu (bo C++ to nowoczesny język, a nie BASIC, w którym ta instrukcja była wykorzystywana).
 System operacyjny: windows_xp_2003 Przeglądarka: firefox
#6
RE: pomoc w sprawie kodu
oj... alez wy sie czepiacie, jakbym byl pro, to pisalbym jak pro, i tutaj o pomoc nie prosilOczko, ale nie jestem ;-)
 System operacyjny: windows_vista Przeglądarka: firefox
Programy: Polecane / Nowe / Inne




Podobne wątki (pomoc w sprawie kodu)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Java początkujący problem ze zrozumieniem kodu MatL70 6 8478 20.06.2017, 12:24
Ostatni post: MatL70
  Język c, końcówka kodu. PILNE leparkour383 1 8551 04.05.2016, 14:08
Ostatni post: Ajgor
  [C#] Sposób na dodawanie nowych funkcji bez dodawania linijek kodu w pliku głównym. dorion300 1 7788 12.06.2015, 14:45
Ostatni post: dorion300

Skocz do:


Wybrane wątki (pomoc w sprawie kodu)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
Ściana Prosta gra w Builder C++ Kiranek1 1 9114 31.05.2019 15:20
Ostatni post: Szachista
  Menu (Nie widoczne długie opisy) wanhelsing 5 11161 28.04.2019 19:31
Ostatni post: koneton
  Skrypt usuwający pliki sylwiaa1 2 4468 28.04.2019 15:20
Ostatni post: sylwiaa1
  Środowisko do assemblera Physicist 4 10388 21.04.2019 14:04
Ostatni post: Ajgor
  VBA excel dmjs 6 10655 17.04.2019 10:20
Ostatni post: ptrick
  C++ - sens pogłębiania nauki gbr 5 10349 25.03.2019 12:53
Ostatni post: koneton
  Klasa wewnętrzna w C++ Physicist 4 10002 23.03.2019 18:28
Ostatni post: Physicist
  Ruby on Rails - tutoriale luciussulla 0 9111 23.03.2019 16:49
Ostatni post: luciussulla
Big Grin Czy dostane sie technikum informatycznego klaudiusz20046 6 12748 21.03.2019 01:28
Ostatni post: UnableToSee
  [C#] Program do moderacji czatów gier wiktrom12 0 9605 07.03.2019 15:33
Ostatni post: wiktrom12
  Mój pierwszy projekt - Pomoc rafal12999 1 10039 07.02.2019 22:01
Ostatni post: Szachista
  pomoc projekt scilab piesel18 2 11503 04.02.2019 09:03
Ostatni post: piesel18
  Szkoła Informatyczna Zikinan 1 10333 02.02.2019 17:59
Ostatni post: wojownikhaha
  [Java] Strona z zadaniami do rozwiązania i odpowiedziami rafal12999 2 11129 27.01.2019 13:44
Ostatni post: rafal12999
  kompilacja biblioteki Agui - cmake jurek2 0 10359 10.01.2019 13:12
Ostatni post: jurek2