• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Szyfr Cezara dla zdań w C

VPS Starter Arubacloud
0 głosów
848 wizyt
pytanie zadane 24 marca 2019 w C i C++ przez inc0gnito Początkujący (260 p.)

Napisałem szyfr Cezara, ktory szyfruje mi jeden wyraz. Chciałbym teraz, żeby był on w stanie szyfrować całe zdanie, ponadto chciałby zeby przy wpisaniu ' . ' program przestał wczytywać tekst.

Wiem, że zeby program przestał wczytywać tekst po kropce muszę sprawdzić znak ASCII każdego wprowadzanego po kolei znaku, jednak nie wiem jak to zrobić w C

#include <stdio.h>
#include <ctype.h>
#include<stdbool.h>
#include <string.h>
#include <math.h>
int main (void)
{
    bool ok = true;
    int wybor, klucz;
    char jawny[181];
    while (ok)
    {
        printf ("1.wpisz\n2.szyfruj\n3.koniec\n");
        scanf("%d",&wybor);
        switch (wybor)
        {
        case 1: //
            printf ("Podaj swoje zdanie \n");
            scanf ("%s", jawny);
            printf ("twoj napis to %s\n", jawny);
            break;
        case 2:
            printf ("podaj klucz: ");
            scanf ("%d", &klucz);
            printf ("twoj klucz to: %d\n",klucz);
            for (int i=0; i<strlen(jawny); i++)
            {
                if (isupper(jawny[i]))
                {
                    jawny[i]='A'+(char)(jawny[i]-'A'+klucz)%26;
                }
                else if (islower(jawny[i]))
                {
                    jawny[i]='a'+(char)(jawny[i]-'a'+klucz)%26;
                }
                else
                    jawny[i]=jawny[i];
            }
            printf ("%s\n", jawny);
            break;

        case 3:
            ok = false;
            break;
        default :
            ok = false;
            break;
        }
    }
}

1 odpowiedź

0 głosów
odpowiedź 24 marca 2019 przez j23 Mędrzec (195,220 p.)
scanf ("%[^\n]", jawny);

Tak wczytujesz linię tekstu. Jak chcesz, żeby czytało do kropki, zamień \n na kropkę, tylko nie wydaje mi się, aby to miało większy sens.

Podobne pytania

0 głosów
1 odpowiedź 363 wizyt
0 głosów
0 odpowiedzi 202 wizyt
pytanie zadane 25 listopada 2019 w C i C++ przez juske00 Początkujący (370 p.)
+1 głos
1 odpowiedź 545 wizyt
pytanie zadane 1 marca 2022 w Java przez ptomeccc Użytkownik (800 p.)

93,020 zapytań

141,985 odpowiedzi

321,287 komentarzy

62,366 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...