2014-12-08 4 views
-2

У меня есть домашнее задание, которое хочет, чтобы мы взяли текст (жало) от пользователя и разделили его по строкам; я думал, но я не могу получить правильную вещь, я думаю, мне нужно использовать указателикак отделить текст от строк

Например:

Each shape has properties, AND // 
each shape may be drawn with a// 
different Char. 

этот текст должен быть separeted из (//) Мне нужно найти алгоритм, который дайте мне количество строк: 3.

+4

Это ваша домашняя работа. Итак, что вы делали дома до сих пор? – pzaenger

+4

Подсчет строк. Ваш учитель рассказал вам, как выглядит линия. Если вы не обращали внимания, тогда google «c конец строки». –

+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 ; 
} 
Смежные вопросы