몽상실현개발주의

[따배씨] 11.5 문자열을 출력하는 다양한 방법들 본문

Language/C

[따배씨] 11.5 문자열을 출력하는 다양한 방법들

migrationArc 2021. 6. 9. 17:37

[따배씨] 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

 

실리콘 밸리의 프로그래머 : 네이버 블로그

안녕하세요! 홍정모 블로그에 오신 것을 환영합니다. 주로 프로그래밍 관련 메모 용도로 사용합니다. 강의 수강하시는 분들은 홍정모 연구소 카페로 오세요.

blog.naver.com

http://www.inflearn.com/course/following-c

 

홍정모의 따라하며 배우는 C언어 - 인프런 | 강의

'따배씨++'의 성원에 힘입어 새롭게 개발된 C 언어로 시작하는 프로그래밍 입문 강의입니다. '따배씨'와 함께 프로그래밍 인생을 업그레이드 해보세요., 따라하며 배우는 C언어 '따배씨++'의 성원

www.inflearn.com

 

 

Comments