Week 12 - 종강
Tutoring/18-1 C Lang2018. 6. 6. 14:55
<180606>
1) 문자열의 길이 구하기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #include <stdio.h> int main() { char str[100]; int len=0; int idx=0; scanf("%s", str); while(str[idx++] != 0) len++; printf("%d\n", len); return 0; } | cs |
>> 문자열의 끝은 널문자이다..!!
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 | #include <stdio.h> int main() { char str[100]; int len=0; int idx=0; char str2[100]; scanf("%s", str); while(str[idx++] != 0) len++; printf("%d\n", len); idx = 0; for(int i=len-1; i>=0; i--) str2[idx++] = str[i]; str2[idx] = 0; printf("%s\n", str2); return 0; } | cs |
>> 21 라인 : 널문자를 꼭 추가해줘야 한다. 널문자의 아스키코드 값은 0
3) 문자열 이어붙이기
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> int main() { char str[100]; char str2[100]; char str3[100]; int len=0, len2=0; int idx=0; scanf("%s", str); scanf("%s", str2); while(str[idx++] != 0) len++; idx=0; while(str2[idx++] != 0) len2++; idx=0; for(int i=0; i<len; i++) str3[i] = str[i]; for(int i=0; i<len2; i++) str3[len++] = str2[i]; str3[len] = 0; printf("%s\n", str3); return 0; } | cs |
>> 두 문자열의 길이를 구한 다음. 첫번째 문자의 널문자가 있는 위치부터 이어붙이면 된다.
>> 26 라인을 str3[len+i] 로 하고, 27라인을 str3[len+len2] = 0 으로 바꿔도 된다.
4) 배열과 포인터와의 관계
- 배열의 이름은 배열의 시작주소이며, 그 값을 바꿀 수 없는 상수형태의 포인터이다..!!
- 포인터(변수)는 변수이기 때문에 주소를 원할때마다 변경할 수 있다.