Skip to content

Instantly share code, notes, and snippets.

@KanybekMomukeyev
Last active December 18, 2015 09:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save KanybekMomukeyev/5763738 to your computer and use it in GitHub Desktop.
Save KanybekMomukeyev/5763738 to your computer and use it in GitHub Desktop.
the implementation of Cesar crypt method
//
// CVLogicManager.m
// CesarShifr
//
// Created by Kanybek Momukeev on 6/12/13.
// Copyright (c) 2013 Kanybek Momukeev. All rights reserved.
//
#import "CVLogicManager.h"
@interface CVLogicManager()
@property (nonatomic, strong) NSMutableArray *alphabetArray;
@property (nonatomic) NSUInteger keyShift;
@end
@implementation CVLogicManager
- (NSMutableArray *)alphabetArray
{
if (!_alphabetArray) {
_alphabetArray = [NSMutableArray new];
}
return _alphabetArray;
}
- (void)setshift:(NSUInteger)shift
{
self.keyShift = shift;
}
- (void)setAlphabetWithString:(NSString *)string
{
[self.alphabetArray removeAllObjects];
const char *charArray = [string UTF8String];
size_t sizeOfCharArray = strlen(charArray);
for (int index = 0; index < sizeOfCharArray; index ++)
{
NSNumber *charNumberValue = @(charArray[index]);
[self.alphabetArray addObject:charNumberValue];
}
}
- (NSString *)shifreString:(NSString *)originalString
{
const char *originalCharArray = [originalString UTF8String];
size_t sizeOfCharArray = strlen(originalCharArray);
NSMutableString *shifreString = [NSMutableString string];
for (int index = 0; index < sizeOfCharArray; index ++)
{
NSNumber *charNumberValue = @(originalCharArray[index]);
if ([self.alphabetArray indexOfObject:charNumberValue] != NSNotFound)
{
NSUInteger indexOfChar = [self.alphabetArray indexOfObject:charNumberValue];
NSUInteger shiftedIndex = (indexOfChar + self.keyShift) % self.alphabetArray.count;
NSNumber *newShifreNumber = [self.alphabetArray objectAtIndex:shiftedIndex];
[shifreString appendString:[NSString stringWithFormat:@"%c",[newShifreNumber charValue]]];
}else
{
[shifreString appendString:[NSString stringWithFormat:@"%c",[charNumberValue charValue]]];
}
}
return shifreString;
}
@end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment