1. 2차원 배열 선언
int main() {
//세로 3칸 가로 4칸짜리 배열
int arr[3][4] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
}
2. 2차원 배열 출력
int main() {
//세로 3칸 가로 4칸짜리 배열
int arr[3][4] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
}
3. 파스칼의 삼각형
1
11
121 2 = 2행 1열
1331
j == 0 j == i -> 무조건 1
i 행 j 열 = [ i-1 j-1] +[i-1 j]
int main() {
int p[10][10];
for (int i = 0; i < 10; i++) {
for (int j = 0; j <= i; j++) {
if (j == 0 || j == i) {
p[i][j] = 1;
}
else {
p[i][j] = p[i - 1][j - 1] + p[i - 1][j];
}
printf("%d ", p[i][j]);
}
printf("\n");
}
}
결과 :
4. 문자열 선언
#include <stdio.h>
int main() {
char arr[100] = "Hello, world!"; //[ ] 안에 숫자 생략가능
printf("%s\n", arr);
}
#include <stdio.h>
int main() {
char arr[ ] = "Hello"; //[ ] 안에 숫자 생략가능
printf(" 배열의 크기 : %d\n", sizeof(arr) / sizeof(char));
}
hello 글자수는 5개인데
배열의 크기를 구해보면 6이 나온다.
왜냐하면 문자열 끝에 \0 널문자가 들어있기 때문이다.
5. 문자열 입력받는 방법
#include <stdio.h>
int main() {
char s[100];
scanf_s("%s", s);
}
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
char s[100];
scanf("%s", s);
printf("%s\n", s);
}
scanf 오류가날때는 #define _CRT_SECURE_NO_WARNINGS 를 선언한다
6. 문자열의 길이 구하기 strlen 함수
만약에 위에서 char str[100] 으로 선언 했다면
sizeof(str) / sizeof(char) - 1 하면 무조건 99만 나오게 된다.
hello의 길이를 구하려면 strlen 함수를 쓰면 된다.
int main() {
char str[100] = "hello";
int len;
len = strlen(str);
printf("문자열의 길이는 : %d", len);
}
결과 :
7. strcpy 함수 : 문자열 카피
strcpy( A , B) ; B 의 문자열을 A에 저장한다. A를 B로 바꾼다.
int main() {
char str1[] = "hello";
char str2[100];
strcpy(str2, str1);
printf("str2 의 값 : %s\n", str2);
}
8. strcat 함수 : concatenate 사슬같이 잇다; 연쇄시키다
strcat(A, B) ; A 뒤에다가 B 문자열을 붙인다.
int main() {
char str[100] = "Hello ";
strcat(str, "World!");
printf("%s\n", str);
}
결과 :
9. strcmp 함수 : compare 비교하다 . 두 문자열을 사전 순으로 비교
strcmp( A , B) ;
-1 A - B -> A가 사전순서로 앞에 있다는 뜻
0 A = B
1 B - A -> B가 사전순서로 앞에 있다는 뜻
int main() {
char str1[] = "sample";
char str2[] = "simple";
int cmp = strcmp(str1, str2);
printf("%d\n", cmp);
}
반응형
'개발자' 카테고리의 다른 글
두들낙서 C/C++ 31강~35강 함수, 함수의 반환, call by reference, 프로토 타입, 재귀 함수 (0) | 2022.06.20 |
---|---|
두들낙서 C/C++ 24강~30강 포인터, 배열 포인터 , 포인터 배열 종합문제 (0) | 2022.06.17 |
두들낙서 20강, 21강 정리 - 배열 (거꾸로 출력, 최대 최소, 짝수의 개수) (0) | 2022.06.16 |
두들낙서 17강~19강 while을 for 로 바꿔보기, 중첩 for 문 예제들 (0) | 2022.06.16 |
두들낙서 12강 ~16강 정리 (0) | 2022.06.15 |
댓글