문제에 대한 최선의 방법을 찾으려고합니다. 나는 즉시 발생하고있어 본질적으로 임의의 영숫자 문자열이 있습니다NSString의 대문자 임의 문자
NSString *string = @"e04325ca24cf20ac6bd6ebf73c376b20ac57192dad83b22602264e92dac076611b51142ae12d2d92022eb2c77f";
당신이 특수 문자, 단지 숫자와 문자가없고, 모든 문자는 소문자로 볼 수 있습니다. 대문자로이 문자열의 모든 문자를 변경하는 것은 간단하다
[string capitalizedString];
어려운 부분은 내가,이 문자열에서 임의의 문자를 대문자로 그들 모두하지 원하는 것입니다. 이 무작위이기 때문에, 이것은 또 다른에 출력 할 수
E04325cA24CF20ac6bD6eBF73C376b20Ac57192DAD83b22602264e92daC076611b51142AE12D2D92022Eb2C77F
: 예를 들어,이 하나의 실행에 출력을 할 수
이 경우e04325ca24cf20aC6bd6eBF73C376B20Ac57192DAd83b22602264E92dAC076611B51142AE12D2d92022EB2c77f
는이 쉬워집니다,의 내가이 있다고 가정 해 봅시다
int charsToUppercase = 12;//hardcoded value for how many characters to uppercase here
int totalChars = 90;//total string length
이 경우에는이 문자열에서 90 개의 12 개의 임의의 문자가 대문자로 표시됩니다.
NSUInteger len = [string length];
unichar buffer[len+1];
[string getCharacters:buffer range:NSMakeRange(0, len)];
NSLog(@"loop through each char");
for(int i = 0; i < len; i++) {
NSLog(@"%C", buffer[i]);
}
는 여전히 대문자로이 루프에서 무작위로 문자를 선택 붙어, 그래서 모두 대문자로되어 있지 : 내가 지금까지 알아 냈어요 것은 내가 비교적 쉽게 문자열의 각 문자를 통해 루프를 할 수 있다는 것입니다. for 루프의 조건이 충분히 빠르다고 가정 할 때 트릭을 잘 수행 할 수 있다고 생각합니다.
첫 번째 : 무작위에 대한 질문의 임의 색인 생성, 반복 없음 등) (문자가 많으면 NSRange range = NSMakeRange (randomIndex, 1); [mutableString replaceCharactersInRange : range withString : [[mutableString substringFromRange : range] 대문자]];)와 같은 문자를 대체합니다. 대문자로 바꾸는 숫자는 수정으로 간주됩니까? – Larme
재미있는 @Larme, 재미있는 아이디어입니다.이 퍼즐의 맥락에서 그것이 숫자 일 경우 계산되지 않는다고 가정 해 봅시다. – Tiago
만약 있다면 –