검색결과 리스트
개발관련/시스템함수에 해당되는 글 11건
- 2013.12.13 [toupper][tolower] 소문자,대문자 변환하기
- 2013.12.04 [trim] trim을 만들어보자
- 2013.11.19 [strtok] 문자열을 구분자를 이용하여 분리하기
- 2013.11.19 [isdigit] 문자열 검사 함수 is~
- 2013.11.11 print문으로 출력할 때 자릿수 지정을 외부 인자로 하는 방법
글
문자열을 소문자 혹은 대문자로 일괄 변환하고 싶을 때 아래와 같이 썼다.
1 2 3 4 5 6 7 | for ( j=0;j<( int ) strlen ( aComStr->tok[i] );j++ ) { if ( aComStr->tok[i][j] >= 'A' && aComStr->tok[i][j] <= 'Z' ) { aComStr->tok[i][j] +=32; } } |
하지만 이미 제공되는 함수가 있었다....아래는 그 예제이다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #include <string.h> int main() { char str[1024]; strcpy ( str, "Hello World 1234" ); int i; printf ( "before : %s\n" , str); for (i=0; i< ( int ) strlen (str); i++) { str[i]= toupper (str[i]); } printf ( "after1 : %s\n" , str); for (i=0; i< ( int ) strlen (str); i++) { str[i]= tolower (str[i]); } printf ( "after2 : %s\n" , str); } |
'개발관련 > 시스템함수' 카테고리의 다른 글
[strchr][strrchr] 문자열에서 특정 문자 위치 찾기 (0) | 2013.12.17 |
---|---|
[strsep] 문자열 분리 함수 (0) | 2013.12.17 |
[trim] trim을 만들어보자 (0) | 2013.12.04 |
[strtok] 문자열을 구분자를 이용하여 분리하기 (0) | 2013.11.19 |
[isdigit] 문자열 검사 함수 is~ (0) | 2013.11.19 |
설정
트랙백
댓글
글
문자열 가공 함수로 str로 시작하는 함수 중에 trim 기능이 있을거라 생각했는데 없다.
sscanf를 잘 쓰면 어케 되겠지만...여튼 인터넷을 뒤져보니 대중적인 소스가 있었는데 이걸 수행해 보니 ltrim은 정상 동작하지만 rtrim은 정상 동작하지 않더라...그래서 살짝 수정한 버전이다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | char * rtrim( char * s) { int i=0; for (i= strlen (s)-1;i>=0;i--) { if ( isspace (s[i])) s[i]=0x00; else break ; } return s; } char * ltrim( char * s) { char * i = s; while (*i != 0x00) { if ( isspace (*i)) i++; else { s = i; break ; } } return s; } char * trim( char * s) { return ltrim(rtrim(s)); } void main() { char t[]= " AAAA " ; char * tt=t; printf ( "SRC [%s]\n" , t); printf ( "rtrim [%s]\n" , rtrim(tt)); printf ( "SRC [%s]\n" , t); printf ( "ltrim [%s]\n" , ltrim(tt)); //printf("trim [%s]\n", trim(t)); } |
'개발관련 > 시스템함수' 카테고리의 다른 글
[strsep] 문자열 분리 함수 (0) | 2013.12.17 |
---|---|
[toupper][tolower] 소문자,대문자 변환하기 (0) | 2013.12.13 |
[strtok] 문자열을 구분자를 이용하여 분리하기 (0) | 2013.11.19 |
[isdigit] 문자열 검사 함수 is~ (0) | 2013.11.19 |
print문으로 출력할 때 자릿수 지정을 외부 인자로 하는 방법 (0) | 2013.11.11 |
설정
트랙백
댓글
글
str로 시작하는 문자열 관련 함수가 꽤 있는데 이중에 문자열을 자르는데 유용한 strtok이란 함수가 있다.
아직 parser가 제대로 구현이 안되어 있어 이를 임시로 구현하는데 사용하게 되었다.
예제는 인터넷을 뒤지다가 찾은 것인데 이정도만 봐도 이해하는데 쉬울 것 같다. 출처를 표기해야하는데...까먹었네;
나중에 찾아보고 출처 기입해야함.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | #include <STDIO.H> #include <STRING.H> //strtok함수는 string.h에 들어있습니다. int main( ) { //분리된 문자열 보관용 char *token = NULL; //분리할 문자열 char str1[] = "This is\tStrtok,Test Program!!!! end\n" ; //' '이나 ','이나 '\t'이나 '\n'이 들어있는 문자열을 분리 //구분자 지정 char str2[] = " ,\t\n!" ; //strtok를 사용시 가장 유의할점은 원본이 손상 된다는 점입니다. //strtok에 넣어줄 첫번째 인자는 복사해서 사용하는 것이 좋습니다. //처음 토큰을 자른다. token = strtok ( str1, str2 ); //이후는 계속 반환된다. while ( token != NULL ) { //토큰별로 출력 printf ( "token = %s" , token ); //한칸 내리기 putchar ( '\n' ); //반복해서 자르기. 첫번째 인자를 NULL처리하면 기존에 포인터에서 계속 자르게 됩니다. token = strtok ( NULL, str2 ); } //strtok사용하고 난후의 원본 문자열이 손상된것을 알수 있습니다. printf ( "검색이 완료된 원본 문자열 : %s\n" ,str1); return 0; } |
'개발관련 > 시스템함수' 카테고리의 다른 글
[toupper][tolower] 소문자,대문자 변환하기 (0) | 2013.12.13 |
---|---|
[trim] trim을 만들어보자 (0) | 2013.12.04 |
[isdigit] 문자열 검사 함수 is~ (0) | 2013.11.19 |
print문으로 출력할 때 자릿수 지정을 외부 인자로 하는 방법 (0) | 2013.11.11 |
[getopt] getopt와 getopt_long을 써보자 (0) | 2013.10.31 |
설정
트랙백
댓글
글
문자열에 대해 조건 판단을 위한 함수가 있다.
isalpha() : 문자이면 TRUE
isacii() : 아스키 문자라면 TRUE
iscntrl() : 제어 문자라면 TRUE
isdigit() : 숫자라면 TRUE
isgraph() : 공백제외하고 인쇄가능한 문자라면 TRUE
isupper() : 대문자라면 TRUE
islower() : 소문자라면 TRUE
[출처] C언어 7|작성자 Ronny
해당 함수를 쓰기 위해서 ctype.h를 참조 해야한다.
임시 parser를 구현하는데 객체의 이름은 숫자로 시작할 수 없다는 제약이 있다고 가정했고 이를 검사하는데 isalpha와 isdigit을 사용했다.
아래 예제는 머 이런식으로 썼다 정도...
1 2 3 4 | if ( isdigit ( *sToken[j] ) ) { j++; } |
'개발관련 > 시스템함수' 카테고리의 다른 글
[toupper][tolower] 소문자,대문자 변환하기 (0) | 2013.12.13 |
---|---|
[trim] trim을 만들어보자 (0) | 2013.12.04 |
[strtok] 문자열을 구분자를 이용하여 분리하기 (0) | 2013.11.19 |
print문으로 출력할 때 자릿수 지정을 외부 인자로 하는 방법 (0) | 2013.11.11 |
[getopt] getopt와 getopt_long을 써보자 (0) | 2013.10.31 |
설정
트랙백
댓글
글
가끔 쓸일이 있는데 자꾸 잊어버려서 기억용으로 기재함.
자릿수 지정을 하는 방법은 아래와 같다.
1 2 3 | printf ( "[%10s]" , argv[0]); printf ( "[%-10s]" , argv[0]); printf ( "[%010s]" , argv[0]); |
위의 결과는 아래와 같다.
[test ]
[000000test]
여기서 내가 자꾸 잊어버리는 자릿수 지정을 인자로 하려고 할때이다.
아래와 같이 아스테릭(*)을 주고 뒤에 인자로 숫자를 주면 된다.
1 | printf ( "[%*s]" , 10, argv[0]); |
'개발관련 > 시스템함수' 카테고리의 다른 글
[toupper][tolower] 소문자,대문자 변환하기 (0) | 2013.12.13 |
---|---|
[trim] trim을 만들어보자 (0) | 2013.12.04 |
[strtok] 문자열을 구분자를 이용하여 분리하기 (0) | 2013.11.19 |
[isdigit] 문자열 검사 함수 is~ (0) | 2013.11.19 |
[getopt] getopt와 getopt_long을 써보자 (0) | 2013.10.31 |
RECENT COMMENT