아~ 맨날 아토인가 이토안가 까먹고..

아토이의 'a'가 '알파벳'의 이니셜이네요. 이것도 포스팅해야지..



우선 헤더는 <stdlib.h>를 필요로 합니다.


문자를 숫자로 바꿔주는 함수, 아토이 atoi (Alphabet TO Integer)는 쓰기 쉽죠

 int    atoi(const char *_Str);
 

ex)
char * a ="12345";
printf("%d \n",atoi(a));


문자열로 인식되기 위해서는 정수를 문자열로 전환을 해야합니다.
 
이 때, 사용하는 함수가 itoa ( Integer TO Alphabet) 함수입니다.
 
헤더를 지정 한 뒤 다음과 같이 사용하면 되지요.
 
 char *itoa ( int value , char *str , int radix );
 
value 는 변환 시키고 싶은 숫자입니다.
str 은 전환 될 문자열입니다. 
radix 는 진수를 결정하게 되는데
         2를 넣으면 2진수 형태로 출력을하고
        10을 넣으면 10진수 형태로 출력합니다.
 
이 함수는 str의 포인터를 리턴합니다.
 
한가지 주의 할 점은 버퍼량의 초과를 방지하기 위해 버퍼의 크기를 충분히 크게 해줘야 합니다.
 
#include <stdlib.h>
#include <stdio.h>
int main( void )
{
 char buffer[65] = {0};
    int num = 100;
  
     itoa( num, buffer, 10 );
     printf( "base %d: %s \n", num, buffer);
  return 0;
}
  
다음은 출력 결과입니다.
 
base 100: 100        (10진수로 했을 때)
base 100:  1100100 (2진수로 했은 때)
 
신고
Creative Commons License
Creative Commons License
Posted by 준환이형님

댓글을 달아 주세요

  1. h0ney 2011.10.09 23:57 신고 Address Modify/Delete Reply

    java 나 C#에서는 이 함수를 일일이 쓰기가 짜증나서
    tostring()과 캐스팅이 존재한다더군 ㅋㅋ

  2. 아 병신아 2011.11.03 20:26 신고 Address Modify/Delete Reply

    야 병신아 .

    존나안되잖아 ..

    왜 리눅스에선안되
    시발거

    존나 쳤는데
    짜증나네

오랜만의 블로깅인데.. 레퍼런스를 올리게 되었군요. 이것은.. C 에서의 atoi 함수랄까요..ㅋㅋ

ex : 

NSLog(@"%d",[[view.annotation.title  substringToIndex:1] intValue]);

Unicode 문자열 조작

- (id) initWithUTF8String:(const char *)bytes
 문자코드가 UTF8이고, 널 문자로 끝나는 형식의 C언어 문자열에서 정보를 복사한후 리시버를 초기화 합니다.

(const char *)UTF8String
 문자 코드가 UTF-8이고, 널문자로 끝나는 형식의 C언어 문자열을 가리키는 포인터를 리턴합니다.  해제후에도 계속 사용할려면 복사 해두어야 한다.

- (NSUInteger) length
 문자열의 길이를 리턴

- (unichar)characterAtIndex:(NSUInteger)index
 문자열내에서 index번째에 위치하는 문자를 리턴합니다.

- (id) initWithCharacters:(const unichar *)characters length:(NSUInteger)length
characters에 있는 length문자 만큼 Unicode 문자열을 복사하여 그것이 내용이 되는 리시버를 최기화 합니다.

- (void)getCharacter:(unichar *)buffer
리시버를 표현하는 Unicode문자열이 buffer가 가리키는 메모리 영역에 쓰입니다. 부분적으로 문자열을 끊어 내려면 메소스 getCharacters:range:를 사용한다.
 
문자코드를 지정한 상호변환

NSASCIIStringEncoding 7비트 ASCII인코딩
NSUTF8StringEncoding  문자의 8비트 표현( UTF8)
NSMacOSRomanStringEncoding  Mac OS의 인코딩
NSKoreanEUCStringEncoding  한국어 8비트 EUC인코딩
- (const char *)cStringUsingEncoding:(NSStringEncoding)encoding
지정된 문자열을 인수로 지정한 문자 코드로 변환한 C언어 문자열을 리턴합니다.
 
- (id) initWithData:(NSData *)data encoding:(NSStringEncoding) encoding
 바이트 배열로 들어 있는 데이터를 Unicode로 변환하고, NSString 문자열로 초기화된 문자열을 초기화 합니다.

- (NSData *)dataUsingEncoding:(NSStringEncoding)encoding
 문자열을 encoding으로 인코딩을 하고 그 결과를 바이트 배열이 들어 있는 NSData의 인스턴스를 리턴합니다.

- (NSUInteger)lengthOfBytesUsingEncoding:(NSStringEncoding) encoding
 인코딩한 경우에 필요한 바이트 수를 리턴합니다.

- (BOOL)canBeConvertedToEncoding:(NSStringEncoding)encoding
 클래스 메소드 availableStringEncoding을 사용하면 그 환경에서 이용 가능한 인코딩 방법을 알 수 있습니다.

서식에 따른 문자열 작성

- (id) initWithFormat:(NSString *)format,...
 format으로 지정된 서식에 맞게 문자열을 생성하고, 그것을 내용으로 하도록 리시버를 초기화 합니다. ","로 구분해서 추가합니다. 서식 문자열은 nil이면 안됩니다.

문자열 비교

- (NSComparisonResult)compare:(NSString *)aString
 리시버와 인수의 문자열을 비교해서 결과를 리턴합니다.

- (NSComparisonResult)caseInsensitiveCompare:(NSString *) aString
 영문자의 대소문자 구분을 하지 않고 문자열을 비교합니다.

-  (BOOL)isEqualToString:NSString *)aString
  리시버와 인수의 문자열이 같은지 확인합니다.

- (BOOL)hasPrefix:(NSString *)aString
 인수의 문자열이 리시버 앞부분과 일치하는지 확인합니다.

결합

- (NSString *)strngByAppendingString:(NSString *)aString
 리시버의 끝 부분에 인수의 문자열을 연결해서 임시 문자열을 만듭니다.
- (NSString *)stringByAppendingFormat:(NSString *)format, ...
 인수의 서식 문자열과 그후에 계속되는 인수를 사용해서 작성된 문자열을 리시버에 연결해서 임시 문자열을 만듭니다.

부분 문자열

- (NSString *)substringToIndex:(NSUInteger)anIndex
 리시버의 앞 부분부터 anIndex가 표시하는 위치의 문자까지에 해당되는 새로운 문자열을 만듭니다.

- (NSString *)substringFromIndex:(NSInteger)anIndex
 리시버의 anIndex가 가리키는 위치에서 끝 문자까지에 해당하는 새로운 문자열을 만듭니다.

- (NSString *)substringWithRange:(NSRange)aRange
 리시버의 aRange로 지정되는 범위에 해당하는 문자에서 새로운 문자열을 만듭니다.

검색과 치환

- (NSRange)rangeOfString:(NSString *)aString
 리시버 내에서 인수로 지정한 문자열이 있으면 그위치의 길이를 구조체 NRange의 형식으로 리턴합니다. 없는 경우 NSNotFound를 리턴하게 된다.

- (NSRange)lineRangeForRange:(RRange)aRange
 개행문자로 구분된 범위내에서 인수로 지정한 문자의 범위를 리턴한다.

- (NSString *)stringByReplacingCharactersInRange:(NSRange)range withString:(NSString *)replacement
 리시버의 aRange로 표시되는 범위를 다른 문자열로 치환한 새로운 문자열을 만듭니다.

- (NSString *)stringByReplacingOccurrenceOfString:(NSString *) target withString:(NSString *)replacement
 리시버에 포함된 모든 target을replacement로 치환한 새로운 문자열을 만듭니다.

lowercaseString : 모든 영문자를 소문자로 변환
uppercaseString : 모든 영문자를 대문자로 변환
capitalizedString : 단어 앞글자를 대문자로 남은 글자는 소문자로 변환

find string
- (BOOL) matchName:(NSString *) name withRecord: (NSDictionary *)record
{
BOOL rc = NO;
NSString *firstName = nil;
NSString *lastName = nil;
NSRange range = [name rangeOfString:@" "];
if( range.location != NSNotFound) {
firstName = [name substringToIndex:range.location];
lastName = [name.substringFromIndex:range.location + 1];
}
}

Transfer lowercase, uppercase
NSString *name = [string lowercaseString], [string uppercaseString];

Append string
NSString *parentPath;
NSString *fullPath = [parentPath stringByAppendingFormat: @"/%@", filename];
신고
Creative Commons License
Creative Commons License
Posted by 준환이형님

댓글을 달아 주세요

티스토리 툴바