336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

개념 


1. stdlib.h 에 포함


2. 문자열에서 2바이트씩 뒤집는다. 



소스코드 : 

#include <stdio.h>

#include <stdlib.h>

#include <string.h>


int main(void)

{

char szBuffer1[256] = "eHll oJ nuoMzz i! ";//{ 'H','e','l','l','o', 0, }; //hello

  // eHll oJ nuoMzz i! "

char szBuffer2[256] = { 0, };

int strlength = 0;

puts(szBuffer1);


puts("---swab---");

strlength = strlen(szBuffer1);

_swab(szBuffer1, szBuffer2, strlength);

puts(szBuffer2);


return 0;

}



결과




 #c언어, #c언어입문, #프로그램입문, #2바이트교환, #swab




336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.


ctype.h


 매크로

  동작 내용

 isalnum()

 ch가 문자나 숫자라면 0이 아닌 값을 돌려 줍니다. 

 isalpha()

 ch가 문자라면 0이 아닌 값을 돌려줍니다.

 isacii()

 ch가 0부터 127까지의 표준 ASCII 문자라면 0이 아닌 값을 리턴합니다.

 iscntrl()

 ch가 제어 문자라면 0아닌 값을 리턴합니다.

 isdigit()

 ch가 숫자라면 0이 아닌 값을 리턴합니다.

 isgraph()

 ch가 공백을 제외하고 인쇄 가능한 문자라면 0이아닌 값을 리턴합니다.

 islower()

 ch가 소문자라면 0이아닌 값을 리턴합니다.

 isprint()

 ch가 공백을 포함하고 인쇄 가능한 문자라면 0이 아닌 값을 리턴합니다.

 ispunct()

 ch가 구두점이라면 0이 아닌 값을 리턴합니다.

 isspace()

 ch가 빈칸, 탭, 수직 탭, 개행, 종이 넘김 문자, 다음줄 문자 라면 0이 아닌 값을 리턴합니다.

 isupper()

 ch가 대문자라면 0이 아닌값을 리턴합니다.

 isxdigit()

 ch가 16진수라면 0이 아닌 값을 리턴합니다.




#c언어, #c언어입문, #프로그램입문,#isalnum(),#isalpha(),#isacii(),#iscntrl(),#isdigit(),#isgraph(),#islower(),#isprint(),#ispunct(),#isspace(),#isupper(),#isxdigit(),#ctype.h





'Programing - C > C Basic grammar ' 카테고리의 다른 글

take rest 02 중복 되지 않는 첫번째 문자 값을 찾아 리턴  (0) 2017.07.28
089 _swab  (0) 2017.07.28
087 isspace 공백과 개행  (0) 2017.07.28
086 islower isupper  (0) 2017.07.28
085 isalnum  (0) 2017.07.28
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

개념 : 


1. ctype.h 에 포함 되어 있다.


2. space(띄어쓰기) \t(공백) \n(개행) 등을 인자로 받으면 8을 리턴한다.




소스코드 : main.c

#include <stdio.h>

#include <ctype.h>


int main(void)

{

unsigned char szBuffer[] = " Hello\tMozzi \n";

int nSpaceCount = 0;

unsigned char szString[256] = { 0, };

unsigned char *pTemp = szBuffer;

int nStringCount = 0;

int nResult = 0;

puts(pTemp);

while (*pTemp != '\0')

{

nResult = (int)isspace((int)*pTemp);

//공백,\t, \n 8 기타0 

if (nResult == 8)

{

nSpaceCount++;

}

else

{

szString[nStringCount] = *pTemp;

nStringCount++;

}


++pTemp;

}


puts(szString);

printf("find space : %d\n", nSpaceCount);



return 0;

}



결과



#c언어, #c언어입문, #프로그램입문, #isspace, #공백검사, #개행 검사




'Programing - C > C Basic grammar ' 카테고리의 다른 글

089 _swab  (0) 2017.07.28
088 is 함수 정리  (0) 2017.07.28
086 islower isupper  (0) 2017.07.28
085 isalnum  (0) 2017.07.28
084 isalpha, isdigit  (0) 2017.07.28
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

개념 :


1. ctype.h에 포함되어 있다.


2. isupper 문자를 입력받아 검사한후 대문자 이면 1 그외는 0 리턴


3. islower 문자를 입력 받아 검사한후 소문자 이면 2 그외는 0 리턴




소스코드 : main.c

#include <stdio.h>

#include <ctype.h>


int main(void)

{

unsigned char szString[] = "Hello JunmoZzi!";

unsigned char szLower[256] = { 0, };

unsigned char szUpper[256] = { 0, };


unsigned char *pTemp = szString;


int nLowerCount = 0;

int nUpperCount = 0;


puts(pTemp);


unsigned char find = 0;


while (*pTemp != '\0')

{


find = (int)islower((int)*pTemp);


if (find)//소문자는 2

{

szLower[nLowerCount] = *pTemp;

++nLowerCount;

}


find = (int)isupper((int)*pTemp);


if (find)//대문자 1

{

szUpper[nUpperCount] = *pTemp;

++nUpperCount;

}



pTemp++;

}


puts(szLower);

puts(szUpper);


return 0;

}



결과



 #c언어, #c언어입문, #프로그램입문, #islower, #isupper, #소문자검사, #대문자검사

 

'Programing - C > C Basic grammar ' 카테고리의 다른 글

088 is 함수 정리  (0) 2017.07.28
087 isspace 공백과 개행  (0) 2017.07.28
085 isalnum  (0) 2017.07.28
084 isalpha, isdigit  (0) 2017.07.28
083 _fcvt_s, _ecvt_s, _gcvt_s 실수를 문자열 형태로  (0) 2017.07.28
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

개념 : 


1. ctype.h에 포함


2. 알파벳일경우 2 숫자일경우 4를 리턴합니다.




소스코드 : main.c

#include <stdio.h>

#include <ctype.h>

int main(void)

{

char *pString = "phone 010-1234-5678";

char szString[256] = { 0, };

char szNumber[256] = { 0, };

char* pTemp = pString;


int count = 0;


int string_count = 0;

int number_count = 0;


puts(pString);

puts("analysis");


while (*pTemp != '\0')

{

count = isalnum(*pTemp);


if (count == 2)

{

szString[string_count] = *pTemp;

++string_count;

}

else if (count == 4)

{

szNumber[number_count] = *pTemp;

++number_count;

}


++pTemp;

}


puts(szString);

puts(szNumber);


return 0;

}



결과





#c언어, #c언어입문, #프로그램입문, #isalunm, #문자검색



336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

개념 : 


1. ctype.h 에 포함되어 있다.


2. isalpha는 알파벳일경우 2을 리턴하고 아닐경우 0을 리턴한다.


3. isdigit는 숫자일경우 4를 리턴하고 아닐경우 0을 리턴한다.




소스코드 : main.c

#include <stdio.h>

#include <ctype.h>

int main(void)

{

char *pString = "phone 010-1234-5678";

char szString[256] = { 0, };

char szNumber[256] = { 0, };

char* pTemp = pString;


int count = 0;


int string_count = 0;

int number_count = 0;


puts(pString);

puts("analysis");


while (*pTemp != '\0')

{

count = isalpha(*pTemp);

count = isdigit(*pTemp);

if (isalpha(*pTemp))

{

szString[string_count] = *pTemp;

++string_count;

}

else if (isdigit(*pTemp))

{

szNumber[number_count] = *pTemp;

++number_count;

}


++pTemp;

}


puts(szString);

puts(szNumber);


return 0;

}



결과





#c언어, #c언어입문, #프로그램입문, #isdigit, #isalpha, #문자가숫자인지검사, #문자가알파벳인지검사


'Programing - C > C Basic grammar ' 카테고리의 다른 글

086 islower isupper  (0) 2017.07.28
085 isalnum  (0) 2017.07.28
083 _fcvt_s, _ecvt_s, _gcvt_s 실수를 문자열 형태로  (0) 2017.07.28
082 atof strtof strtod 문자열 실수 변환  (0) 2017.07.28
081 strtoul  (0) 2017.07.28
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
개념 : 

1. stdlib.h에 포함 되어있다.

2. 실수를 문자열 형태로 저장해준다.

3.parameter 
_fcvt_s 와 _ecvt_s는 점을 포함하지 않고 숫자만으로 문자열을 구성한다.( float f, double e)
_gcvt_s는 기호와 소숫점가지 표현하여 문자열로 저장한다.

용도에 맞게 사용하자.



소스코드 : main.c
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
//문자를 실수로 변환해보자
double PI = 3.14159265359;

char szBuffer1[256] = { 0, };
char szBuffer2[256] = { 0, };
char szBuffer3[256] = { 0, };

char *pBreak = NULL;
int Dec = 0, Sign = 0, Count = 5;

_fcvt_s(szBuffer1, sizeof(szBuffer1), PI, Count, &Dec, &Sign); // Count 정수형태로 저장될때 표현될 범위를 말한다. 그러니깐 15자리이고 표현할수 없는 부분은 0으로 표시해준다.
printf(" PI : %E \n", PI);//Sign은 부호, 0 +, 1 - 기호를 의미한다.
printf("_fcvt_s 사용: %s \n dec : %d\n sign : %d\n", szBuffer1, Dec, Sign);// Dec은 소수점의 위치를 의미한다. 1 은 왼쪽에서 오른쪽으로 1 가서 점을찍는다. 

Count = 15;

_ecvt_s(szBuffer2, sizeof(szBuffer2), PI, Count, &Dec, &Sign); // Count 정수형태로 저장될때 표현될 범위를 말한다. 그러니깐 15자리이고 표현할수 없는 부분은 0으로 표시해준다.
printf(" PI : %E \n", PI);//Sign은 부호, 0 +, 1 - 기호를 의미한다.
printf("_ecvt_s 사용: %s \n dec : %d\n sign : %d\n", szBuffer2, Dec, Sign);// Dec은 소수점의 위치를 의미한다. 1 은 왼쪽에서 오른쪽으로 1 가서 점을찍는다. 

_gcvt_s(szBuffer3, sizeof(szBuffer3), PI, Count);

printf(" PI : %E \n", PI);//Sign은 부호, 0 +, 1 - 기호를 의미한다.
printf("_gcvt_s 사용: %s \n Count : %d\n", szBuffer3, Count);// Dec은 소수점의 위치를 의미한다. 1 은 왼쪽에서 오른쪽으로 1 가서 점을찍는다. 
return 0;

}


결과



#c언어, #c언어입문, #프로그램입문, #_fcvt_s, #_ecvt_s, #_gcvt_s, #실수를문자열로


'Programing - C > C Basic grammar ' 카테고리의 다른 글

085 isalnum  (0) 2017.07.28
084 isalpha, isdigit  (0) 2017.07.28
082 atof strtof strtod 문자열 실수 변환  (0) 2017.07.28
081 strtoul  (0) 2017.07.28
080 strtol  (0) 2017.07.28
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

개념 :


문자열의 실수들을 검색하여 실수로 변환하여 준다.


atof 의 경우 문자열에 실수만 들어 있어야하며 두번째를 탐색하지 않는다.


strtof 의 경우 문자열에서 찾은부분을 리턴하고 포인트로 그담을 가르켜서 연속적이고 구분가능한 실수들을 추출할수있다.


strtod의 경우는 strtof와 같으나 double이냐 float 이냐의 차이다. 상황에 맞게 쓰자.




소스코드 : main.c

#include <stdio.h>

#include <stdlib.h>


int main(void)

{

char *pString_1 = "12.3 4.56 789.0";

char *pString_2 = "12.354";

float fValue_1 = 0.0f;

char* pPoint = pString_1;


float fBuffer_1[256] = { 0, };

float fBuffer_2[256] = { 0, };


int count = 0;


fValue_1 = atof(pString_2);

printf("%f \n", fValue_1);


for (count = 0; ;count++)

{

fBuffer_1[count] = strtof(pPoint, &pPoint);


if (fBuffer_1[count] == 0.0f)

{

break;

}


printf("%f \n", fBuffer_1[count]);

}


pPoint = pString_1;


for (count = 0; ;count++)

{

fBuffer_2[count] = strtof(pPoint, &pPoint);


if (fBuffer_2[count] == 0.0f)

{

break;

}


printf("%f\n", fBuffer_2[count]);

}


return 0;

}


결과



 #c언어, #c언어입문, #프로그램입문, #atof, #strtof, #strtod, #문자열을실수로


 

'Programing - C > C Basic grammar ' 카테고리의 다른 글

084 isalpha, isdigit  (0) 2017.07.28
083 _fcvt_s, _ecvt_s, _gcvt_s 실수를 문자열 형태로  (0) 2017.07.28
081 strtoul  (0) 2017.07.28
080 strtol  (0) 2017.07.28
079 _ltoa_s  (0) 2017.07.28
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

개념 : 


strtol과 동일한 기능을 가지고 있지만 리턴형태가 unsigned long 형태입니다.



소스코드 : main.c

#include <stdio.h>

#include<stdlib.h>


int main(void)

{

char * pString = "-0xfff 0xffff 0xfffffff";

char * pStop = NULL;


unsigned long lNum1 = 0;

unsigned long lNum2 = 0;

unsigned long lNum3 = 0;


printf("문자열 : %s \n", pString);

lNum1 = strtoul(pString, &pStop, 16); //마지막 인자는 진수입니다.

lNum2 = strtoul(pStop, &pStop, 16);  // 들어 있는 진수를 잘파악하는것도

lNum3 = strtoul(pStop, &pStop, 16);  // 잊으면안되요


printf("첫번째 추출 : %u \n", lNum1);// -로 인해서 최대 치가 출력됩니다.

printf("두번째 추출 : %u \n", lNum2);

printf("세번째 추출 : %u \n", lNum3);


return 0;

}


결과



#c언어, #c언어입문, #프로그램입문, #strtoul, #문자를정수로변환



'Programing - C > C Basic grammar ' 카테고리의 다른 글

083 _fcvt_s, _ecvt_s, _gcvt_s 실수를 문자열 형태로  (0) 2017.07.28
082 atof strtof strtod 문자열 실수 변환  (0) 2017.07.28
080 strtol  (0) 2017.07.28
079 _ltoa_s  (0) 2017.07.28
078 atol  (0) 2017.07.28
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

개념 : 


atol 과 비슷합니다.


다만 브레이크 포인터가 있어서 분석하고 숫자로 변환하고 숫자 아닌부분에 멈처 다음 숫자가 있다면 바로 포인터로 연결하여 쓰기 편하다는 장점이 있


는것같습니다 . 


숫자 조합만으로 문장을 구성할시 아주요긴하게 사용할수 있을것같내요 



소스코드 : main.c

#include <stdio.h>

#include<stdlib.h>


int main(void)

{

char * pString = "0xff 0xfff 0xffff";

char * pStop = NULL;


long lNum1 = 0;

long lNum2 = 0;

long lNum3 = 0;


printf("문자열 : %s \n", pString);

lNum1 = strtol(pString, &pStop, 16); //마지막 인자는 진수입니다.

lNum2 = strtol(pStop, &pStop, 16);  // 들어 있는 진수를 잘파악하는것도

lNum3 = strtol(pStop, &pStop, 16);  // 잊으면안되요


printf("첫번째 추출 : %d \n", lNum1);

printf("두번째 추출 : %d \n", lNum2);

printf("세번째 추출 : %d \n", lNum3);


return 0;

}




결과




#c언어입문, #c언어, #프로그램입문, #strtol,#문자열숫자추출


'Programing - C > C Basic grammar ' 카테고리의 다른 글

082 atof strtof strtod 문자열 실수 변환  (0) 2017.07.28
081 strtoul  (0) 2017.07.28
079 _ltoa_s  (0) 2017.07.28
078 atol  (0) 2017.07.28
077 atoi 문자열을 정수로  (0) 2017.07.28

+ Recent posts