본문 바로가기

반응형

System Programmings/C

(20)
[C] 절대값 및 부호 바꾸기 (abs(), lasb(), fabs()) // 절대값 #include #include // abs = sbsolute value int main() { int number1=-34; long number2=-42; double number3=-34.12; printf("%d\n", abs(number1));// abs = int형 절대값 printf("%ld\n", labs(number2));// labs = long형 절대값 printf("%lf\n", fabs(number3));// fabs = double형 절대값 return 0; } // 부호 바꾸기 #include #include // abs = sbsolute value int main() { int number1=-34; long number2=42; // double number..
[C] 문자열 비교 & 검색 (strcmp(), strncmp(), strstr(), strpbrk(), strspn(), strcspn()) // 문자열 비교 /* strcmp(dest, srt) 에서 dest==srt 면 0을 반환 destsrc면 양수값 반환 */ #include #include int main() { char s1[]="ABCD"; char s2[]="ABCD"; char s3[]="abcd"; char s4[]="abc"; printf("%d\n", strcmp(s1, s2)); // 문자열이 같으면 0을 반환한다. printf("%d\n", strcmp(s1, s3)); // 대소문자 가린다. 아스키 코드상 대문자가 소문자보다 10진수로 적다. // 따라서 음수값 반환 printf("%d\n", strcmp(s3, s4)); // s3가 s4보다 크다. 따라서 양수값 반환 printf("%d\n", strncmp(s3..
[C] 문자열 복사, 대체, 삽입 (strncpy(), mommove(), memcpy(), strcat(), strncat()) // 문자열 복사 #include #include int main() { char s1[]="abcdefgh"; // *s1 하면 에러 char s2[]="alphabetagama"; // *s2 해도 가능하다. strncpy(s1, s2, strlen(s1)); // s2 문자열을 s1에 복사한다. s1의 길이만큼 복사. printf("%s", s1); // 만약 s2가 s1에 복사할때 s2의 길이가 s1의 길이를 초과해서 // 복사하면 에러가 생긴다. return 0; } // 문자열 대체 memmove() or memcpy() 함수 #include #include int main() { char s1[]="abcdefg"; char s2[]="012"; memmove(s1+3, s2, strlen(..
[C] 문자열 -> 숫자 / 숫자 -> 문자열 (atoi(), atof(), strtod(), strtol(), strtoul()) atoi = Ascii to integer atof = Ascii to float atol = Ascii to long // 문자열 -> 숫자로 변환 #include int main() { int n; double d; char *a="1234567891"; char b[]="123456.78910"; n=atoi(a); printf("%d\n", n); d=atof(b); printf("%f\n", d); return 0; } itoa = Integer to ascii ftoa = Float to ascii // ftoa() 함수는 없다.!! ltoa = Long to ascii // 숫자 -> 문자열 #include int main() { int i=3910; //double d=2913.1239; ..
[C] 문자열 역순으로 바꿔저장하기 (한/영) #include void reverseA(char *s); void reverseB(char *s); int main(void) { char a[]="abcdef"; //*a="abcdef";
[C] 문자열 역순으로 출력하기 (한/영 재귀함수 포함) #include int main(void) { char *a="abcdefg"; int i; for(i=strlen(a)-1; i>=0; i--) //영문일 경우 for(i=strlen(a)-2; i>=0; i-=2) printf("%c", a[i]); // printf("%c%c", a[i], a[+1]); return 0; } 한글, 영문의 재귀함수를 이용한 역순 출력 #include void reverseA(char *s); void reverseB(char *s); int main(void) { char *a="abcdefg"; char *b="감자"; reverseA(a); printf("\n"); reverseB(b); return 0; } void reverseA(char *s) // 영문일..
[C] 대소문자 변환 tolower()과 toupper() ASCII 코드값을 이용해 대문자와 소문자의 코드 차이값인 32를 이용하여 대소문자를 바꾼다. tolower()함수와 toupper 함수를 사용하려면 이 필요하다. #include #include // tolower()과 toupper()을 사용하기 위해 int main(void) { char ch1, ch2; ch1 = 'a'; ch2 = 'X'; printf("바뀌기 전\n"); printf("%c\n", ch1); printf("%c\n", ch2); printf("바뀐 후\n"); printf("%c\n", toupper(ch1)); printf("%c\n", tolower(ch2)); return 0; }
[C] strlen을 직접 만들어 보면? strlen은 NULL문자인 \0을 제외한 길이를 알려준다. #include int my_size(char *st); int main(void) { char *s="dfjoe"; printf("%d", my_size(s)); return 0; } // my_size가 strlen 이다. int my_size (char *st) { int n=0; while(*st++!='\0') n++; return n; }

반응형