Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- dfs
- programmers
- 따라하며 배우는 C언어
- BOJ
- server
- php
- 따배씨
- 인프런
- DP
- JavaScript
- String
- web
- sorting
- BASIC
- 정수론
- 생활코딩
- 백준
- greedy
- graph
- udemy
- Algospot
- 따라하면서 배우는 C언어
- 종만북
- Cleancode
- C언어
- C
- Algorithm
- Python
- Math
- BFS
Archives
- Today
- Total
몽상실현개발주의
[따배씨] 11.1 문자열을 정의하는 방법들 본문
따배씨 - 따라하며 배우는 C언어
11강 문자열 함수들
11.1 문자열 Strings 을 정의하는 방법들
#include <stdio.h>
#define MESSAGE "A symbolic string contant"
#define MAXLENGTH 81
int main(){
char words[MAXLENGTH] = "A string in an array";
const char* pt1 = "A pointer to a string.";
puts("Puts() adds a newline at the end:"); // puts() add \n at the end
puts(MESSAGE);
// A symbolic string contant
puts(words);
// A string in an array
puts(pt1);
// A pointer to a string.
words[3] = 'p';
puts(words);
// A spring in an array
//pt1[8] = 'A';
return 0;
}
pt1[8] = 'A'; // Error
- pt1 을 const 로 선언하였기 때문에, 값 변경 불가
- const 없이 선언 하더라도 Error 발생, 읽기 전용 메모리에 저장된 데이터를 바꾸려고 시도하였기 때문
- 문자열 리터럴은 프로그램으 일부이기 때문에 일기 전용 메모리에 저장
- 운영체제가 중단 시킴
#include <stdio.h>
int main(){
char greeting[50] = "Hello, and""How are"" you"
" today!";
puts(greeting);
// Hello, andHow are you today!
return 0;
}
char greeting[50] = "Hello, and""How are"" you"
" today!";
- 문자열을 이용하여 따로 포현해도, 하나의 String 이 됨
#include <stdio.h>
int main(){
printf("%s %p %c\n", "We", "are", *"excellent programmers");
// We 0x100003f8f e
return 0;
}
printf("%p\n", "are");
// 0x100003f8f
- String 도 배열이기 때문에, %p로 주소값을 받아서 출력 가능
printf("%c\n", *"excellent programmers");
// e
- "excellent programmers" 의 첫번째 주소 공간의 값이 출력됨
#include <stdio.h>
#define MESSAGE "A symbolic string contant"
#define MAXLENGTH 81
int main(){
const char m1[15] = "Love you!";
for (int i = 0; i < 15; ++i){
printf("%d ", (int)m1[i]);
}
// 76 111 118 101 32 121 111 117 33 0 0 0 0 0 0
return 0;
}
- String의 초기화 하지 않은 나머지 공간을 Compiler 가 자동으로 NULL 로 초기화
const char m1[15] = "Love you!";
const char m1[15] = {'L', 'o', 'v', 'e', ' ', 'y', 'o', 'u', '!', '\0'};
- 같은 초기화 방법
이 글의 모든 사진과 내용의 출처는 홍정모 교수님께 있음을 알려드립니다.
http://blog.naver.com/atelierjpro
http://www.inflearn.com/course/following-c
'Language > C' 카테고리의 다른 글
[따배씨] 11.3 문자열의 배열 (0) | 2021.06.09 |
---|---|
[따배씨] 11.2 메모리 레이아웃과 문자열 (0) | 2021.06.09 |
[따배씨] 10.18 복합 리터럴과 배열 (0) | 2021.06.08 |
[따배씨] 10.17 변수로 길이를 정할 수 있는 배열 (VLAs) (0) | 2021.06.08 |
[따배씨] 10.16 다차원 배열을 함수에게 전달해 주는 방법 (0) | 2021.06.08 |
Comments