Witam, to znów ja z moim zadankiem. ^^''
Tak wygląda mój kod:
#include <iostream>
#include <cstdlib>
#include <time.h>
using namespace std;
int main()
{
int x,k;
string tekst;
scanf("%d\n %d\n", &x, &k);
cin>>tekst;
if(x==1)
{
for(int i=0; i<tekst.length(); i++)
{
if(tekst[i]<65 || 90<tekst[i]<97 || 122<tekst[i])
{
continue;
}
if(tekst[i]>=97 && tekst[i]+k>122 || tekst[i]<=90 && tekst[i]+k>90)
{
tekst[i]=tekst[i]+k-26;
}
else
{
tekst[i]=tekst[i]+k;
}
}
}
else
{
for(int i=0; i<tekst.length(); i++)
{
if(tekst[i]<65 || 90<tekst[i]<97 || 122<tekst[i])
{
continue;
}
if(tekst[i]>=97 && tekst[i]-k<97 || tekst[i]-k<65)
{
tekst[i]=tekst[i]-k+26;
}
else
{
tekst[i]=tekst[i]-k;
}
}
}
cout<<tekst;
}
"Continue" działa - z tego co pojąłem z forów - na zasadzie "olewania" dalszej części pętli i robienia jej od nowa, podwyższając w moim przypadku zadeklarowane w pętli "i" o jeden.
Tylko, że jest jeden problem.
Program zachowuje się bodajże tak, jakbym użył "break", bo nic w moim stringu nie zmienia i mam wrażenie, że przeskakuje od razu tu:
cout<<tekst;
Dlaczego tak się dzieje?