이 문제는 배열의 있는 문자열의 공백을 제고하고, 문자열의 갯수를 세어주는 프로그램임 


|| 연산자랑 && 연산자랑 햇갈려서 잠깐 고민했음 

잠깐임

잠깐

아주잠깐


#include <stdio.h>

#include <string.h>


void compress_line(char str[]);


int main()

{

    char str[] = " Is it fun   !";

    compress_line(str);

    printf("%s: %d \n",str, strlen(str));

}


void compress_line(char str[])

{

    int i =0, j=0;

    char compressed[100];

    char prev = '\0';

    

    while(str[i] == ' ') //앞부분의 공백 제거

        i++

        

        while(str[i] != '\0') //str배열의 값이 \0이 아닐때까지 반복해라 -> 배열의 끝까지 반복해라

        {

            if(str[i] != ' ' || prev != ' ') // 만약 str[i] 가 공백이 아니거나 prev 가 공백이 아니라면

            {

                compressed[j] = str[i]; // str[i] 번째에 있는 값을 compressed[j] 에 대입해라

                j++; // 그리고 j 를 증가시켜 다음 글자를 받을 준비를 해라

            }

            prev = str[i];

            i++;

        }

    if(prev == ' ')

        j--;

    

    compressed[j] = '\0';

    

    strcpy(str, compressed);

}



'개인공부 > C ' 카테고리의 다른 글

배열과 반복문 복습  (0) 2018.07.10
독하게 시작하는 C프로그래밍 10강 함수  (0) 2018.07.02
Call - By  (0) 2018.05.17
백준 2739번: 구구단  (0) 2018.01.23
백준 2742번: 기찍 N  (0) 2018.01.23

+ Recent posts