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