목록개발 공부/C (47)
EASY7
visual studio 2015 에서는 보안이 강화가 돼서 그냥 scanf를 쓰면 오류가 뜹니다. 심각도 코드 설명 프로젝트 파일 줄 비표시 오류(Suppression) 상태 오류 C4996 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 몇가지 해결책이 있는데 세가지 방법 중에 되는 것으로 해보세요 1.프로젝트 만들기 전에 사진의 체크부분을 풀어준다. 2. #define _CRT_SECURE_NO_WARNINGS 를 추가해본다. 3. scanf를 scanf_s..
이 검색어를 포함하는 원소를 프린트해보자 strstr(char *str1, char *keyword) 문자열에서 문자열 찾기 str1문자열에서 keyword검색하여 존재하면 keyword가 존재하는 위치를 그렇지 않으면 null리턴 #include #include(string.h> void main() { char *arr[5]={"서울 강남구", "서울 노원구", "광주 북구","경기도 파주"}; char a[20]; puts("검색어를 입력하세요"); gets(a); search_pro(arr, 5,a); } void search_pro(char *p[], int n, char *k) { int i ,cnt=0; char *result, *match_arr[5]; for(i=0;i
가장 작은 값이 먼저 앞으로 정렬됨 #include #include void main() { int i; int *arr[5]={"black smith", "fishers", "ashley", "family", angel"}; selection_sort(arr,5); for(i=0;i
#include void bubble_sort(int arr[], int n); void main() { int arr[]={35,3,12,9,1,20,15}; int i; int n=sizeof(arr)/sizeof(*arr); *arr은 맨처음 원소의 길이 sizeof(int)해도됨. bubble_sort(arr, n); printf("정렬결과 \n"); for (i=0; i
#include void bubble_sort(int arr[], int n); void main() { int arr[]={35,3,12,9,1,20,15}; int i; int n=sizeof(arr)/sizeof(*arr); *arr은 맨처음 원소의 길이 sizeof(int)해도됨. bubble_sort(arr, n); printf("정렬결과 \n"); for (i=0; i
함수포인터 #include void sample1(char *carname); void sample2(char *carname); void sample3(char *carname); void main() { void (*p)(char *carname); int a; char carname[20]; printf("귀하의 차종입력\n"); scanf("\s", carname); printf("메뉴를 선택하세요\n"); scanf("%d", &a); swich(a) { case 1: p=sample1; p(carname); break; case 2: p=sample2; p(carname); break; case 3: p=sample3; p(carname); break; } } void sample1(char ..
함수 호출시 parameter로 포인터 넣기 #include int num_change(int i, int j);/*이거 안하면 warning 뜸 */ void main() { int i=5,j=10; num_change(i,j); /*값이 넘어감*/ printf("i= %d j=%d",i,j); } int num_change(int i, int j) { i+=5; j+=5; return 0; } 이렇게 해도 i=5 j=10이렇게 나옴 main과 num_change의 i, j는 다른 것이기 때문이다. #include void main() { int i=5,j=10; num_change(&i, &j); printf("i= %d j=%d", i, j); } int num_change(int *i, int *..
교수님께서 드디어 이메일을 보내셨다 ㅎㅎ 자, 힘내서 완강하자! #include void main() { int arr[5]={1,2,3,4,5}; int *p_1, *p_2; p_1=arr; p_2=p_1+2; printf("p_1 =%d p_2= %d \n", p_1,p_2 ); printf( "두 공간의 차이 %d \n", p_2-p_1); } 결과 p_1=1440992 p_2=1441000 두공간의 차이 2 /*2칸차이가 나기에*/ printf("%d", int p_2- int p_1);하면 8이 나옴. 주소값에 대한 오해 ox00000000이 1byte(8bits)이다. char은 1byte이다. 2^8은 256이고 문자배열과 포인터 문자배열 자체는 문자열의 시작주소값을 가짐 char *arr;..