1. strcmp 구현
flow : 문자열 2개를 받아 한 문자씩 검사
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 | #include<stdio.h> int my_strcmp(char* str1, char* str2); int main() { char str1[80],str2[80]; int check; printf("첫 번재 비교할 문자열 입력 : "); gets(str1); printf("두 번재 비교할 문자열 입력 : "); gets(str2); check = my_strcmp(&str1,&str2); if(check ==1) printf("%s가 더 큽니다.",str1); else if(check ==-1) printf("%s가 더 큽니다.",str2); else printf("두 문자열이 같습니다."); return 0; } int my_strcmp(char* str1, char* str2) { while((*str1 == *str2 )&&(*str1 !='\0')) { str1++; str2++; } if(*str1>*str2) return 1; else if(*str1<*str2) return -1; else return 0; } | cs |
2. swap
문자열 2개를 받아 한 문자씩 swap
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 | #include<stdio.h> #include<string.h> void swap(char* str1,char* str2); int main() { char str1[80],str2[80]; printf("1번 문자열을 입력하세요 : "); gets(str1); printf("2번 문자열을 입력하세요 : "); gets(str2); printf("swap 전 : %s - %s\n",str1,str2); swap(&str1,&str2); printf("swap 후 : %s - %s",str1,str2); return 0; } void swap(char *pa, char *pb) { char temp; while((*pb != '\0') || (*pa != '\0')) { temp = *pa; *pa = *pb; *pb = temp; pa++; pb++; } } | cs |
getchar로 한문자씩 입력을 받아서 null값전까지 counting한다
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 | // 가장 긴 단어찾기 프로그램 #include <stdio.h> int main(void) { int ch; int len, max = 0; while(1) { len = 0; ch = getchar(); // 문자 입력 while((ch != -1) && (ch != '\n')) // Ctrl+Z키를 누르거나 엔터 키를 치지 않는 동안 { len++; // 문자의 수를 센다 ch = getchar(); } if(ch == -1) break; // Ctrl+Z키가 눌려진 경우 입력 종료 if(len > max) max = len; // 새로 입력한 단어의 길이가 현재 가장 긴 } // 단어의 길이보다 길면 그 값을 가장 긴 길이로 설정 printf("가장 긴 단어의 길이 : %d\n", max); return 0; } | cs |
'C 언어' 카테고리의 다른 글
[C언어_Day6]함수 포인터 + Void 포인터 (0) | 2018.10.11 |
---|---|
[C언어_Day5]명령 인수, 포인터 사용 (0) | 2018.10.11 |
[C언어_Day3]대소문자 변경 (0) | 2018.10.11 |
[C언어_Day2]for문, while문, break,contine 활용 (0) | 2018.10.11 |
[C언어_Day1]for문 연습 (0) | 2018.10.11 |