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
- BOJ
- Algospot
- programmers
- server
- 종만북
- greedy
- Cleancode
- 정수론
- Math
- 인프런
- dfs
- php
- web
- udemy
- 생활코딩
- BFS
- C언어
- C
- Python
- JavaScript
- String
- BASIC
- DP
- graph
- 따라하며 배우는 C언어
- Algorithm
- 따라하면서 배우는 C언어
- 따배씨
- 백준
- sorting
Archives
- Today
- Total
몽상실현개발주의
[따배씨] 11.5 문자열을 출력하는 다양한 방법들 본문
따배씨 - 따라하며 배우는 C언어
11강 문자열 함수들
11.5 문자열을 출력하는 다양한 방법들
#include <stdio.h>
#define TEST "A string from #define."
void custom_put(const char* str); // Only two lines
void custom_put2(const char* str); // Add \n, return # of characters
int main(){
char str[60] = "String array initialized";
const char* ptr = "String array initialized";
puts("String without \\n");
// String without \n
puts("END");
// END
puts(TEST);
// A string from #define.
puts(TEST+5);
// ing from #define.
puts(&str[3]);
// ing array initialized
//puts(str[3]); // Runtime Error
puts(ptr + 3);
// ing array initialized
char str2[] = {'H', 'I', '!'};
puts(str2);
// HI!o?
return 0;
}
puts(str[3]); // Runtime Error
- puts 는 문자열의 시작 포인터 값을 받아 동작
char str2[] = {'H', 'I', '!'};
puts(str2);
- puts 는 NULL character 를 만날때까지 출력하는데, str2 는 NULL character가 없으므로 만날때까지 메모리를 탐색하여 출력을 진행
#include <stdio.h>
#define TEST "A string from #define."
void custom_put(const char* str); // Only two lines
void custom_put2(const char* str); // Add \n, return # of characters
int main(){
char input[100] = "";
int ret = scanf("%10s", input);
// just do it!
printf("%s\n", input);
// just
ret = scanf("%10s", input);
printf("%s\n", input);
// do
return 0;
}
- scanf 는 빈칸을 만나면 입력 종료
- 나머지 입력한 문자는 buffer 에 존재하다가 다음 scanf 를 만나면 다음 문자가 저장됨
#include <stdio.h>
void custom_put(const char* str); // Only two lines
int custom_put2(const char* str); // Add \n, return # of characters
int main(){
char input[100];
scanf("%s", input);
custom_put(input);
int cnt = custom_put2(input);
printf("%d\n", cnt);
return 0;
}
void custom_put(const char* str){
while (*str)
putchar(*str++);
}
int custom_put2(const char* str){
int count = 0;
while (*str){
putchar(*str++);
count++;
}
putchar('\n');
return count;
}
- putchar 를 이용한 custom 출력 함수
- *str++, *str 호출 후 str++ 연산
- while (*str), *str != '\0' 와 같은 표현
이 글의 모든 사진과 내용의 출처는 홍정모 교수님께 있음을 알려드립니다.
http://blog.naver.com/atelierjpro
http://www.inflearn.com/course/following-c
'Language > C' 카테고리의 다른 글
[따배씨] 11.7 선택 정렬 문제 풀이 (0) | 2021.06.10 |
---|---|
[따배씨] 11.6 다양한 문자열 함수들 (0) | 2021.06.09 |
[따배씨] 11.4 문자열을 입력받는 다양한 방법들 (0) | 2021.06.09 |
[따배씨] 11.3 문자열의 배열 (0) | 2021.06.09 |
[따배씨] 11.2 메모리 레이아웃과 문자열 (0) | 2021.06.09 |
Comments