c - 자주 사용 하 는 문자열 변환 함수

8701 단어
이번 학기 에는 데이터 구조, 각종 실험 이 개설 되 었 다.
이전 학습 에서 언급 되 지 않 았 던 함수 도 언급 되 었 다.
공부 한 후에 블 로그 마크 를 써 라.주로 c 언어 에서 자주 사용 하 는 문자열 변환 함수 입 니 다.
atof (문자열 을 부동 소수점 으로 변환) atoi (문자열 을 정수 로 변환) atol (문자열 을 성장 정수 로 변환) strtod (문자열 을 부동 소수점 으로 변환) strtol (문자열 을 성장 정수 로 변환) strtoul (문자열 을 부호 없 는 긴 정수 로 변환) toascii (정형 수 를 합 법 적 인 ASCII 코드 문자 로 변환) toupper (소문 자 를 대문자 로 변환)tolower (대문자 소문 자로 변환)
atof (문자열 을 부동 소수점 으로 변환)
관련 함수 atoi, atol, strtod, strtol, strtoul 헤더 파일 \ # include < stdlib. h > 정의 함수 double atof (const char * nptr);함수 설명 atof () 는 인자 nptr 문자열 을 스 캔 하여 앞의 빈 칸 문 자 를 건 너 뛰 고 숫자 나 양음 기 호 를 만 나 서 야 변환 을 시작 합 니 다. 그리고 비 숫자 나 문자열 이 끝 날 때 ('/ 0') 에 야 변환 을 끝내 고 결 과 를 되 돌려 줍 니 다.인자 nptr 문자열 은 플러스 마이너스, 소수점 또는 E (e) 를 포함 하여 지수 부분 을 표시 할 수 있 습 니 다. 예 를 들 어 123.456 또는 123 e - 2.
변환 후의 부동 소수점 수 를 되 돌려 줍 니 다.추가 설명 atof () 는 strtod (nptr, (char * *) NULL 을 사용 한 결과 와 같 습 니 다.범례 / * 문자열 a 와 문자열 b 를 숫자 로 변환 한 후 추가 * /
 
 
#include<stdlib.h>
#include <stdio.h>
int main()
{
    char *a = "-100.23";
    char *b = "200e-2";
    float c;
    c=atof(a) + atof(b);
    printf("c=%.2f", c);
    return 0;
}

//    
//c=-98.23

atoi (문자열 을 정형 수로 변환) 관련 함수 atof, atol, atrtod, strtol, strtoul 헤더 파일 \ # include < stdlib. h > 정의 함수 int atoi (const char * nptr);함수 설명 atoi () 는 인자 nptr 문자열 을 스 캔 하여 앞의 빈 칸 문 자 를 건 너 뛰 고 숫자 나 양음 기 호 를 만 나 서 야 변환 을 시작 합 니 다. 그리고 비 숫자 나 문자열 이 끝 날 때 ('/ 0') 에 야 변환 을 끝내 고 결 과 를 되 돌려 줍 니 다.변환 후의 정형 수 를 되 돌려 줍 니 다.추가 설명 atoi () 와 strtol (nptr, (char * *) NULL, 10) 사용 하기;결 과 는 같다.범례 / * 문자열 a 와 문자열 b 를 숫자 로 변환 한 후 추가 * /
#include<stdlib.h>
#include <stdio.h>

int main()
{
    char a[]="-100";
    char b[]="456";
    int c;
    c = atoi(a)+atoi(b);
    printf("c=%d",c);
    
    return 0;
}

//    
//c=356

atol (문자열 을 성장 정수 로 변환)
관련 함수 atof, atoi, strtod, strtol, strtoul 헤더 파일 \ # include < stdlib. h > 정의 함수 long atol (const char * nptr);함수 설명 아 톨 () 은 인자 nptr 문자열 을 스 캔 하여 앞의 빈 칸 문 자 를 건 너 뛰 고 숫자 나 양음 기 호 를 만 나 서 야 변환 을 시작 합 니 다. 그리고 비 숫자 나 문자열 이 끝 날 때 ('/ 0') 에 야 변환 을 끝내 고 결 과 를 되 돌려 줍 니 다.변환 후의 긴 정형 수 를 되 돌려 줍 니 다.추가 설명 atol () 과 strtol (nptr, (char * *) NULL, 10) 사용 하기;결 과 는 같다.범례 / * 문자열 a 와 문자열 b 를 숫자 로 변환 한 후 추가 * /
#include<stdlib.h>
#include <stdio.h>
int main()
{
    char a[] = "1000000000";
    char b[] = "234567890";
    long c;
    c = atol(a)+atol(b);
    printf("c=%d",c);
    return 0;
}

//    
//c=1234567890

gcvt (부동 소수점 수 를 문자열 로 바 꾸 고 반올림)
관련 함수 ecvt, fcvt, sprintf 헤더 파일 \ # include < stdlib. h > 정의 함수 char * gcvt (double number, size t ndigits, char * buf);함수 설명 gcvt () 는 인자 number 를 ASCII 코드 문자열 로 변환 하 는 데 사용 되 며, 인자 ndigits 는 표 시 된 자릿수 를 표시 합 니 다.gcvt () 는 ecvt () 와 fcvt () 가 다른 곳 에서 gcvt () 가 변 환 된 문자열 에는 소수점 이나 양음 기호 가 포함 되 어 있 습 니 다.변환 에 성공 하면 변 환 된 문자열 은 매개 변수 buf 포인터 가 가리 키 는 공간 에 놓 입 니 다.반환 값 은 문자열 지침 을 되 돌려 줍 니 다. 이 주 소 는 buf 지침 입 니 다.설명 을 덧붙이다
#include<stdlib.h>
#include <stdio.h>
int main()
{
    double a = 123.45;
    double b = -1234.56;
    char *ptr = NULL;
    int decpt, sign;
    gcvt(a,5,ptr);
    printf("a value=%s
", ptr); ptr=gcvt(b,6,ptr); printf("b value=%s", ptr); return 0; } // // a value=123.45 // b value=-1234.56

strtod (문자열 을 부동 소수점 으로 변환)
관련 함수 atoi, atol, strtod, strtol, strtoul 헤더 파일 \ # include < stdlib. h > 정의 함수 double strtod (const char * nptr, char * * endptr);함수 설명 strtod () 는 인자 nptr 문자열 을 스 캔 하여 앞의 빈 칸 문 자 를 건 너 뛰 고 숫자 나 양음 기 호 를 만 나 서 야 변환 을 시작 합 니 다. 비 숫자 나 문자열 이 끝 날 때 ('/ 0') 에 야 변환 을 끝내 고 결 과 를 되 돌려 줍 니 다.endptr 가 NULL 이 아니라면 조건 에 맞지 않 아 종 료 된 nptr 의 문자 포인터 가 endptr 에서 전 송 됩 니 다.인자 nptr 문자열 은 플러스 마이너스, 소수점 또는 E (e) 를 포함 하여 지수 부분 을 표시 할 수 있 습 니 다.예 를 들 어 123.456 또는 123 e - 2.변환 후의 부동 소수점 수 를 되 돌려 줍 니 다.추가 설명 참조 atof ().범례 / * 문자열 a, b, c 를 각각 10, 2, 16 진법 으로 숫자 로 변환 * /
#include<stdlib.h>
#include <stdio.h>
int mian()
{
    char a[]="1000000000";
    char b[]="1000000000";
    char c[]="ffff";
    printf("a=%d
",strtod(a,NULL,10)); printf("b=%d
",strtod(b,NULL,2)); printf("c=%d
",strtod(c,NULL,16)); return 0; } // // a=1000000000 // b=512 // c=65535

strtol (문자열 을 성장 정수 로 변환)
관련 함수 atof, atoi, atol, strtod, strtoul 헤더 파일 \ # include < stdlib. h > 정의 함수 long int strtol (const char * nptr, char * * endptr, int base);함수 설명 strtol () 은 인자 nptr 문자열 을 매개 변수 base 에 따라 성장 정형 수 를 변환 합 니 다.매개 변수 base 범 위 는 2 에서 36 또는 0 입 니 다.매개 변수 base 는 base 값 이 10 이면 10 진법, base 값 이 16 이면 16 진법 등 을 사용 합 니 다.베이스 값 이 0 일 때 는 10 진 변환 을 사용 하지만, '0x' 와 같은 선행 문 자 를 만나면 16 진 변환 을 사용 합 니 다.처음에 strtol () 은 인자 nptr 문자열 을 스 캔 하여 앞의 빈 칸 문 자 를 건 너 뛰 고 숫자 나 양음 기 호 를 만 나 서 야 변환 을 시작 합 니 다. 비 숫자 나 문자열 이 끝 날 때 ('/ 0') 변환 을 끝내 고 결 과 를 되 돌려 줍 니 다.인자 endptr 가 NULL 이 아니라면 조건 에 맞지 않 아 종 료 된 nptr 의 문자 포인 터 를 endptr 에서 되 돌려 줍 니 다.변환 후의 긴 정수 값 을 되 돌려 줍 니 다. 그렇지 않 으 면 ERANGE 로 돌아 가 오류 코드 를 errno 에 저장 합 니 다.추가 설명 ERANGE 가 지정 한 변환 문자열 이 합 법 적 인 범 위 를 초과 합 니 다.범례 / * 문자열 a, b, c 를 각각 10, 2, 16 진법 으로 숫자 로 변환 * /
#include<stdlib.h>
#include <stdio.h>
int main()
{
    char a[]="1000000000";
    char b[]="1000000000";
    char c[]="ffff";
    printf("a=%d
",strtol(a,NULL,10)); printf("b=%d
",strtol(b,NULL,2)); printf("c=%d
",strtol(c,NULL,16)); return 0; } // // a=1000000000 // b=512 // c=65535

strtoul (문자열 을 부호 없 는 긴 정수 로 변환)
관련 함수 atof, atoi, atol, strtod, strtol 헤더 파일 \ # include < stdlib. h > 정의 함수 unsigned long int strtoul (const char * nptr, char * * endptr, int base);함수 설명 strtoul () 은 인자 nptr 문자열 을 매개 변수 base 에 따라 기호 가 없 는 긴 정수 로 변환 합 니 다.매개 변수 base 범 위 는 2 에서 36 또는 0 입 니 다.매개 변수 base 는 base 값 이 10 이면 10 진법 을 사용 하고 base 값 이 16 이면 16 진수 등 을 사용 합 니 다.베이스 값 이 0 일 때 는 10 진 변환 을 사용 하지만, '0x' 와 같은 선행 문 자 를 만나면 16 진 변환 을 사용 합 니 다.처음에 strtoul () 은 인자 nptr 문자열 을 스 캔 하고 앞의 빈 칸 문자열 을 건 너 뛰 며 숫자 나 양음 기호 에 부 딪 혀 서 야 변환 을 시작 합 니 다. 비 숫자 나 문자열 이 끝 날 때 ('/ 0') 변환 을 끝내 고 결 과 를 되 돌려 줍 니 다.인자 endptr 가 NULL 이 아니라면 조건 에 맞지 않 아 종 료 된 nptr 의 문자 포인 터 를 endptr 에서 되 돌려 줍 니 다.변환 후의 긴 정수 값 을 되 돌려 줍 니 다. 그렇지 않 으 면 ERANGE 로 돌아 가 오류 코드 를 errno 에 저장 합 니 다.추가 설명 ERANGE 가 지정 한 변환 문자열 이 합 법 적 인 범 위 를 초과 합 니 다.범례 참조 strtol ()
toascii (정형 수 를 합 법 적 인 ASCII 코드 문자 로 변환)
관련 함수 isascii, toupper, tolower 헤더 파일 \ # include < ctype. h > 정의 함수 int toascii (int c) 함수 설명 toascii () 는 인자 c 를 7 비트 의 unsigned char 값 으로 변환 하고 8 위 는 삭 제 됩 니 다. 이 문 자 는 ASCII 코드 문자 로 전 환 됩 니 다.반환 값 은 변 환 된 ASCII 코드 문자 값 을 되 돌려 줍 니 다.
#include <stdio.h>
#include <ctype.h>
int main()
{
    int a=217;
    char b;
    printf("before toascii () : a value =%d(%c)
",a,a); b=toascii(a); printf("after toascii() : a value =%d(%c)
",b,b); return 0; } // // before toascii () : a value =217(\331) // after toascii() : a value =89(Y)

tolower (대문자 소문 자로 변환)
관련 함수 isalpha, toupper 헤더 파일 \ # include < stdlib. h > 정의 함수 int tolower (int c);함수 설명 은 인자 c 가 대문자 라면 해당 소문 자 를 되 돌려 줍 니 다.변환 한 소문 자 를 되 돌려 줍 니 다. 변환 하지 않 으 면 인자 c 값 을 되 돌려 줍 니 다.추가 설명 범례 / * s 문자열 의 대문자 를 소문 자로 변환 * /
#include<ctype.h>
#include <stdio.h>
int main()
{
    char s[]="aBcDeFgH12345;!#$";
    int i;
    printf("before tolower() : %s
",s); for(i=0;i<sizeof(s);i++) s[i]=tolower(s[i]); printf("after tolower() : %s
",s); return 0; } // // before tolower() : aBcDeFgH12345;!#$ // after tolower() : abcdefgh12345;!#$

toupper (소문 자 를 대문자 로 변환)
관련 함수 isalpha, tolower 헤더 파일 \ # include < ctype. h > 정의 함수 int toupper (int c);함수 설명 은 인자 c 가 소문 자 이면 이 대 영 된 대문자 자 모 를 되 돌려 줍 니 다.변환 한 대문자 값 을 되 돌려 줍 니 다. 변환 하지 않 으 면 인자 c 값 을 되 돌려 줍 니 다.추가 설명 범례 / * s 문자열 의 소문 자 를 대문자 로 변환 * /
#include<ctype.h>
#include <stdio.h>
int main()
{
    char s[]="aBcDeFgH12345;!#$";
    int i;
    printf("before toupper() : %s
",s); for(i=0;i<sizeof(s);i++) s[i]=toupper(s[i]); printf("after toupper() : %s
",s); return 0; } // // before toupper() : aBcDeFgH12345;!#$ // after toupper() : ABCDEFGH12345;!#$

좋은 웹페이지 즐겨찾기