2014-12-08 2 views
-2

나는 사용자로부터 텍스트 (스팅)를 받아 한 줄씩 구분하기를 원하는 숙제를 가지고있다. 내가 생각되었지만 나는 옳은 일을 얻을 수 없다, 나는 내가 포인터텍스트를 줄 단위로 분리하는 방법

예를 들어

를 사용해야합니다 같아요

이 텍스트는 내가 알고리즘을 찾을 필요 (//)에서, 분리하고해야
Each shape has properties, AND // 
each shape may be drawn with a// 
different Char. 

그 나에게 줄의 수를 줄 수있다 : 3.

+4

귀하의 숙제입니다. 그래서 지금까지 집에서 무엇을 했습니까? – pzaenger

+4

카운트 라인 엔딩. 선생님이 줄 결말이 어떻게 생겼는지 말해 줬어. 만약 당신이 관심을 지불하지 않았다면 구글 "줄 끝 문자". –

+0

'strstr'을 사용하십시오 ... – BLUEPIXY

답변

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

int main(void){ 
    char *text = "Each shape has properties, AND //each shape may be drawn with a//different Char."; 
    size_t len = strlen(text); 
    char **separated_text = malloc(((len+2)/3)*sizeof(char *)); 
    char *p; 
    int i, n=0; 
    for(;;){ 
     if(p = strstr(text, "//")){ 
      len = p - text + 2;// 2 == strlen("//") 
      separated_text[n] = malloc(len+1); 
      memcpy(separated_text[n], text, len); 
      separated_text[n++][len] = 0; 
      text += len; 
     } else { 
      len = strlen(text); 
      separated_text[n] = malloc(len+1); 
      strcpy(separated_text[n++], text); 
      break; 
     } 
    } 
    for(i=0; i<n; ++i){ 
     puts(separated_text[i]); 
     free(separated_text[i]); 
    } 
    free(separated_text); 

    return 0 ; 
} 
관련 문제