Я пытаюсь создать функцию, которая получает строку и число, и если число больше «0», поэтому он сделает цезарский шифр со строкой и номером, который пользователь вошел. например -> 'stack', а число - '3' -> 'uvdfn'. , если номер равен «0», поэтому он изменит строку. например - 'stack' -> 'kcats'Цезарный шифр и программа обратного текста
Я не знаю, в чем проблема с кодом, я не вижу ничего плохого.
/*********************************
* Class: MAGSHIMIM C2 \t \t \t *
* Week 3 *
**********************************
* Thank you for Ofek and Dor for *
* Editing this template :) *
**********************************/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void decryptText(char* encText, int n);
#define STR_SIZE 50
int main(void)
{
\t char str[STR_SIZE];
\t int num = 0;
\t printf("Please enter the string : ");
\t fgets(str, STR_SIZE, stdin);
\t printf("Please enter a number : ");
\t scanf("%d", &num);
\t decryptText(str, num);
system("PAUSE");
\t return 0;
}
void decryptText(char* encText, int n)
{
\t int i = 0;
\t int j = 0;
\t char temp = 0;
\t int strLen = strlen(encText);
\t if (n > 0)
\t {
\t \t for (i = 0; i < strLen; i++)
\t \t {
\t \t \t if (*(encText + i) == ' ') { }
\t \t \t else
\t \t \t {
\t \t \t \t if (*(encText + i) >= 'x')
\t \t \t \t {
\t \t \t \t \t *(encText + i) = (*(encText + i)) - 26;
\t \t \t \t }
\t \t \t \t *(encText + i) = (*(encText + i)) + n;
\t \t \t }
\t \t }
\t \t printf("The array after the program deciphered it : \n");
\t \t printf("%s", encText);
\t }
\t else if (n == 0)
\t {
\t \t for (i = 0; i < strLen; i++)
\t \t {
\t \t \t for (j = 0; j >= 0; j--)
\t \t \t {
\t \t \t \t temp = *(encText + i);
\t \t \t \t *(encText + i) = *(encText + j);
\t \t \t \t *(encText + i) = temp;
\t \t \t }
\t \t }
\t \t printf("The array after the program cracked it : \n");
\t \t printf("%s", encText);
\t }
}