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 ;/

- Rejestracja:około 21 lat
- Ostatnio:prawie 3 lata
- Lokalizacja:Space: the final frontier
- Postów:26433
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';

- Rejestracja:około 21 lat
- Ostatnio:prawie 3 lata
- Lokalizacja:Space: the final frontier
- Postów:26433
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;
}

- Rejestracja:około 21 lat
- Ostatnio:prawie 3 lata
- Lokalizacja:Space: the final frontier
- Postów:26433
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?
- Rejestracja:około 15 lat
- Ostatnio:prawie 15 lat
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