문자열 조작 함수
문자열을 처리하는 함수로, string.h에 정의되어 있다.
strcpy strtok(s1,"?");에서 즉, 처음 수행할때 s1에 구분자로 나눌 스트링을 넣고 두번째 수행부터는 s1에 NULL값을 char munja[]="string,token,pro"; 예제) #include char string[] = "A string\tof ,,tokens\nand some more tokens"; int main( void ) 결과 :
형식 : char *strcpy(char *string1, char *string2)
설명 : 문자열 string2를 string1으로 복사하는 함수
strerror
형식 : char *strerror(int errnum)
설명 : 주어진 에러 번호에 해당되는 에러 메시지를 가져오는 함수
strlen
형식 : int strlen(char *string)
설명 : 문자열의 길이를 구하는 함수 이때 NULL문자는 제외하고 길이를 구한다.
strncat
형식 : char *strncat(char *string1, char *string2, size_t n)
설명 : string2의 문자를 string1 끝에 붙이는 함수
strncmp
형식 : int strncmp(char *string1, char *string2, size_t n)
설명 : 두 문자열의 처음 n개의 문자를 비교하는 함수
strncpy
형식 : char *strncpy(char *string1, char *string2, size_t n)
설명 : string2의 처음 n개의 문자를 string1에 복사하는 함수
strnset
형식 : char *strnset(char *string, int c, size_t n)
설명 : 문자열의 처음 n개 문자를 c로 만드는 함수
strrchr
형식 : char *strrchr(char *string, int c)
설명 : 문자열에서 마지막에 나오는 문자 c를 찾는 함수 만약, 해당되는 문자가 발견되지 않은 경우에는 NULL을 반환한다.
strtok()
s2 스트링에 있는 구분자(delimiter)로 s1 스트링을
token 단위로 나누어 준다. 그런데 이것을 한번 수행으로 다 하는 것이 아니라
매번 호출을 할때마다 그 다음 구분자가 나올때까지 자르기 때문에 사용법이 약간
어려운 것입니다.
넣음으로써 계속해서 구분자로 나누는 작업을 할 수 있게 된다.
char *p;
char *bb[3];
int i=0,a;
p = strtok (munja,",");
bb[i]=p;
while (p !=NULL)
{
i++;
p = strtok (NULL,",");
bb[i]=p;
}
for(a=0;a printf("%s\n",bb[a]);
Find the next token in a string.
char *strtok( char *strToken, const char *strDelimit );
wchar_t *wcstok( wchar_t *strToken, const wchar_t *strDelimit );
unsigned char *_mbstok( unsigned char*strToken, const unsigned char *strDelimit );Parameters
// crt_strtok.c
/* In this program, a loop uses strtok
* to print all the tokens (separated by commas
* or blanks) in the string named "string".
*/
#include
char seps[] = " ,\t\n";
char *token;
{
printf( "Tokens:\n" );
/* Establish string and get the first token: */
token = strtok( string, seps );
while( token != NULL )
{
/* While there are tokens in "string" */
printf( " %s\n", token );
/* Get next token: */
token = strtok( NULL, seps );
}
}
Tokens:
A
string
of
tokens
and
some
more
tokens
문자열 평가
header 파일 : ctype.h
① isalpha()
- 형식
int isalpha(c)
문자 c가 영문자 ('A'-'Z','a'-'z')인가를 판별하여 영문자이면 0이 아닌 숫자를 갖는다.
② isdigit()
int isdigit(c)
문자 c가 숫자('0'-'9')인지 판별하여 숫자이면 0이 아닌 숫자를 갖는다.
③ toupper()
문자를 대문자로 변환한다.
④ tolower()
문자를 소문자로 변환한다.
예제) 대문자를 소문자로 변환
#include<stdio.h>
#include<ctype.h>
main()
{
char str;
printf("문자를 입력하세요 [ ]\b\b");
scanf("%c",&str);
if(str >='A' && str <='Z')
{
printf ( tolower(str));
}
}
문자열 처리
헤더파일 - string.h
① strcat()
- 형식
char *strcat(char *str1, const char *str2)/ |
str1이 가리키는 문자열 뒤에 str2가 가리키는 문자열을 결합시킨다.
예제)
#include <stdio.h>
#include <string.h>
void main()
{
char str1[20];
char str2[20];
strcpy(str1,"2002");
strcpy(str2,"worldcup");
printf("%s\n", strcat(str1,str2));
}
② strupr()
-형식
char * strupr(*str1); char * str1; |
str1로 가리키는 문자열 중 소문자를 대문자로 변환시킨다.
반대되는 함수는 strlwr()
예)
#include<string.h>
#include<stdio.h>
main()
{
char * str="Visual C++";
char *cp;
cp=strupr(str);
printf("%s",cp);
}
③ strcmp()
- 형식
char * strcmp(const*str1,const *str2); |
str1이 가리키는 문자열과 str2가 가리키는 문자열을 비교. 대 소문자 구분한다.
문자열 1= 문자열 2 0
문자열 1> 문자열 2 양수
문자열 1 < 문자열 2 음수
예제)
#include <string.h>
#include <stdio.h>
void main(void)
{
char *buf1 = "KOREA";
char *buf2 = "korea";
int result;
result=strcmp(buf2, buf1);
if (result!=0)
printf("buf1 and buf2 are not same by strcmp\n");
else
printf("buf1 and buf2 are same by strcmp\n");
result=stricmp(buf2, buf1); / * stricmp는 대소문자를 구분하지 않는다. */
if (result!=0)
printf("buf1 and buf2 are not same by stricmp\n");
else
printf("buf1 and buf2 are same by stricmp\n");
}
'프로그래머의 길 > C & C++' 카테고리의 다른 글
초보자들이 실수하는 getchar() 바로 알기 (0) | 2007.03.07 |
---|---|
고수준 파일 입출력 함수 정리 (0) | 2007.03.07 |
rand() ,srand() 역활 (C에서 random 함수 사용) (0) | 2007.02.27 |
printf() 출력 형식 지정자 (0) | 2007.02.15 |
아스키 코드표 (0) | 2007.02.15 |