이 문제는 배열의 있는 문자열의 공백을 제고하고, 문자열의 갯수를 세어주는 프로그램임
|| 연산자랑 && 연산자랑 햇갈려서 잠깐 고민했음
잠깐임
잠깐
아주잠깐
ㅋ
#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 |