wczytywanie teksty i podmiana liter

0

Witam mam do napisania kod który zamieni litery w tekscie na inne litery wg klucza , cos jak( a to q; b to w) i tak dalej.Problem w tym że mi nie chce zamieniac pętla cos nie działa i nie wiem jak ja napisac poprawnie ;/

0

cipherword[c1] == encryted [c2];
na
cipherword[c1] = encryted [c2];

0

Masakra. Rozumiem ze nie dało się robić:

//word to char* gdzie masz wczytane słowo
int dlugosc = strlen(word);
cipherword = new char[dlugosc+1];
for(int i=0;i<dlugosc;i++)
  cipherword[i] = encrypted[word[i]-'a']; //np jeśli literka word[i] to 'a' to 'a'-'a' da nam 0 a encrypted[0] to właśnie literka na jaką mielismy zamienic 'a' ;)
cipherword[dlugosc]='\0';
0

Zrobiłem poprawki, siedze nad tym cały dzien "musk" mi sie sprał ;/ ;] , a kod nie dziala. Jak by ktos mógł zajrzeć Dzieki z góry!

0

Bo ten kod to bzdura. To co wstawiłem to jest praktycznie kompletny program, ale ty chyba nie umiesz go użyć o_O

#include <stdio.h>
#include <string.h>
int main()
{
  char encrypted [] = {"qwertyuioplkjhgfdsazxcvb"};
  char* word = new char[30]; //załóżmy że chcemy słowo o długosci max 29 znaków
  scanf("%s",word); //czytamy słowo

  int dlugosc = strlen(word);
  char* cipherword = new char[dlugosc+1];
  for (int i=0;i<dlugosc;i++)
    cipherword[i] = encrypted[word[i]-'a']; //np jeśli literka word[i] to 'a' to 'a'-'a' da nam 0 a encrypted[0] to właśnie literka na jaką mielismy zamienic 'a' ;)
  cipherword[dlugosc]='\0';
  printf("%s",cipherword);
  return 0;
}

Przerobienie tego na czytanie z pliku nie powinno stanowic wielkiego problemu. Dodatkowo jeśli nie chcesz zapisywać nigdzie calego słowa tylko wypisywać na bieżąco to możesz sobie darować zabawy z pamięcią i zrobić po prostu:

#include <stdio.h>
int main()
{
  char encrypted [] = {"qwertyuioplkjhgfdsazxcvb"};
  char letter;
  while((letter = getchar())!='\n') //będzie wypisywać aż nie trafi na enter, tutaj mozesz dać swoje while(plik!=eof)
    printf("%c",encrypted[letter-'a']);
  return 0;
}


0

musze to zapisać do pliku ;]

0

A to w ogóle dziwne, bo w twoim kodzie otwierałeś plik do odczytu a nie do zapisu...
Zresztą to żadna różnica, zamiast tego printfa mojego możesz przecież dać fwrite, jaki problem?

0

Dokładnie to mam podmienic litry(zaszyfrowac), plik tekstowy. na inne litery przy czym musze kazdz litere przyrównac np: a - q; b-e itp , po czym mam zapisac je do nowego pliku. Wydaje sie proste ale nie dla beginersa [???]

0

Zadziałało ;). Teraz sprawa zapisu do pliku. Bede sie meczył ale jak ktoś może pomóc to było by miło.

#include <stdio.h>
int main()
{
char encrypted [] = {"qwertyuioplkjhgfdsazxcvb"};
char letter;
FILE *fp;
if ((fp = fopen ("2002.txt","r"))==NULL)
{
puts ("nie można otworzyć");

}
while((letter = fgetc(fp))!= EOF )

printf("%c",encrypted[letter-'a']);
 getchar();

return 0;
getchar();
}

p.s.
Mógłby mi jakiś Maesto wytłumaczyć na polski co znaczy, dlaczego i kiedy (w sumie jak to używać)
[letter-'a'] dzieki wielke

0
emilo napisał(a)

Mógłby mi jakiś Maesto wytłumaczyć na polski co znaczy, dlaczego i kiedy (w sumie jak to używać) [letter-'a'] dzieki wielke

Odejmowanie.
'a' - 'a' == 0
'b' - 'a' == 1
'a' + 2 == 'c'

0

Dzieki

1 użytkowników online, w tym zalogowanych: 0, gości: 1