ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

๋ฌธ์ œ: ์ฒซ ๋ฒˆ์งธ ์ž…๋ ฅ๋ฐ›์€ ๋ฌธ์ž์—ด์— ์žˆ๋Š” ๋‹จ์–ด๋“ค ์ค‘์—์„œ, ๋‘ ๋ฒˆ์งธ ์ž…๋ ฅ๋ฐ›์€ ๋‹จ์–ด๋ณด๋‹ค ์‚ฌ์ „์ˆœ์œผ๋กœ ์•ž์— ํ•ด๋‹นํ•˜๋Š” ๋‹จ์–ด๋ฅผ ์•ž์—์„œ๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ ๋ชจ๋‘ ์ถœ๋ ฅํ•˜๊ณ , ๊ทธ ๋‹ค์Œ ์ค„์— ์‚ฌ์ „์ˆœ์œผ๋กœ ๋’ค์— ํ•ด๋‹นํ•˜๋Š” ๋‹จ์–ด๋ฅผ ์•ž์—์„œ๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ ๋ชจ๋‘ ์ถœ๋ ฅํ•˜์‹œ์˜ค.

 

์ฝ”๋“œ:

#include <stdio.h>
#include <string.h>

int main() {
char str1[150];
char str2[10];

char x[15][100]; //๋‹จ์–ด ๊ณต๋ฐฑ ๋‹จ์œ„๋กœ ์งค๋ผ์„œ ์ €์žฅํ•  ๋ฐฐ์—ด

gets(str1);
gets(str2);

int i = 0, j, s, k = 0;
int cnt = 0;

for (i = 0; i < str1[i]; i++) {//str1 ๋ฌธ์ž์—ด์ด ๋„ ๋ฌธ์ž๊ฐ€ ๋‚˜์˜ฌ ๋•Œ๊นŒ์ง€ ๋Œ๋ฆฌ๊ธฐ
 if (str1[i] != ' ') { //๊ณต๋ฐฑ์ด ์•„๋‹ˆ๋ผ๋ฉด
  for (j = i, s = 0;str1[j]!=' '&&str1[j] !='\0'; j++, s++) {
   x[k][s] = str1[j]; //์ด์ค‘ ๋ฐฐ์—ด์— ๋‹จ์–ด๋ณ„๋กœ ์ €์žฅ
  }
 x[k][s] = '\0'; //๋‹จ์–ด ๋์— ๋„๋ฌธ์ž ๋„ฃ์–ด์ฃผ๊ธฐ
 k++; //๋‹จ์–ด ๊ฐฏ์ˆ˜
 if (str1[j] == '\0') //str1๋ฌธ์ž์—ด์ด ๋„๋ฌธ์ž๊ฐ€ ๋‚˜์˜จ๋‹ค๋ฉด for๋ฌธ ํƒˆ์ถœ
  break;
 i = j;
 }
}

for (int m = 0; m < k; m++) {
if (strcmp(x[m], str2) < 0) { //strcmp: ๋ฌธ์ž์—ด ๋น„๊ต ํ•จ์ˆ˜, ๋‹จ์–ด๊ฐ€ str2๋ฌธ์ž์—ด์— ์žˆ๋Š” ๋‹จ์–ด๋ณด๋‹ค ์ž‘์œผ๋ฉด(์‚ฌ์ „์ˆœ์œผ๋กœ ๋น ๋ฅด๋ฉด) ์Œ์ˆ˜ ๋ฐ˜ํ™˜
printf("%s ", x[m]); // ์ถœ๋ ฅ
}
}
printf("\n");
for (int m = 0; m < k; m++) {
if (strcmp(x[m], str2) > 0) { //๋‹จ์–ด๊ฐ€ str2๋ฌธ์ž์—ด์— ์žˆ๋Š” ๋‹จ์–ด๋ณด๋‹ค ํฌ๋ฉด(์‚ฌ์ „์ˆœ์œผ๋กœ ๋’ค์— ์žˆ์œผ๋ฉด) 
printf("%s ", x[m]);
}
}

return 0;
}

 

๋ฐ˜์‘ํ˜•