Как токенизировать / разбить данные из .csv файлов, содержащих дни и случайные числа в C? - PullRequest
0 голосов
/ 22 февраля 2012

Я пытаюсь токенизировать данные из файла c, содержащего случайные дни и числа. Например, данные:

Thursday,60
Tuesday,45
Wednesday,80
Monday,14
Saturday,73
Tuesday,3
Saturday,29 
.
.
.   
Friday,71
Saturday,98

Мое главное намерение - получить эти данные и сделать следующее:

Sunday: (Total of numbers sunday has in data)
Monday: (Total of numbers monday has in data)
Tuesday: (Total of numbers tuesday has in data)
.
.
.
Saturday: (Total of numbers saturday has in data)

Ответы [ 4 ]

2 голосов
/ 22 февраля 2012

Я бы порекомендовал попробовать strtok

1 голос
/ 22 февраля 2012
$ man -k token
strsep (3)           - extract token from string
strtok (3)           - extract tokens from strings
strtok_r (3)         - extract tokens from strings
tc-htb (8)           - Hierarchy Token Bucket
tc-tbf (8)           - Token Bucket Filter
wcstok (3)           - split wide-character string into tokens
$

strtok - это стандартная функция C, и это то, что вы ищете.

0 голосов
/ 22 февраля 2012
  1. Считать каждую строку в буфер, используя fgets
  2. Токенизация буфера с использованием strtok
  3. Преобразовать числовой токен в целочисленное значение, используя strtol
  4. Добавьте это значение к промежуточной сумме за этот конкретный день.

Это так просто, как только может.

0 голосов
/ 22 февраля 2012

Обычный подход к такой проблеме:

1) Считать данные (stdio.h).См. http://www.acm.uiuc.edu/webmonkeys/book/c_guide/2.12.html

2) Используйте регулярные выражения, чтобы получить день недели (regex.h).См. http://www.gnu.org/software/libc/manual/html_node/Regular-Expressions.html. В этом случае вы могли бы написать действительно простое регулярное выражение.

3) Иметь int [] размера 7

4) Использовать регулярное выражение из (2)получить номер и увеличить соответствующий элемент массива

...