Last active
December 18, 2015 09:49
-
-
Save KanybekMomukeyev/5763738 to your computer and use it in GitHub Desktop.
the implementation of Cesar crypt method
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// 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