перейти к следующему непробельному символу в массиве строк - PullRequest
0 голосов
/ 10 ноября 2011

У меня проблема ...

при попытке проанализировать файл, разделенный не более чем пробелом, у меня возникла проблема ... Я решил, что лучший способ сделать это - токенизировать строку, которая у меня есть, до сих пор я поместил все свои строки в массив (путем определения всех новых записей в массиве с помощью символа новой строки) Таким образом, мой массив может содержать 5 записей как таковых: (каждая запись в массиве определяет строки в файле)

1)mary  julia      anne                 steve
2)alex james              david        katie
3)omegle          yikes  craxy  horse
4)foo  bar       foobar    matt maximus
5)capital or     not       smack

Как видите, каждая запись в файле может содержать различное количество неопределенных пробелов ... которые могут быть одним или несколькими символами табуляции или несколькими символами обычного пробела.

Я рассматривал возможность проходить по строковому типу char по символу char до тех пор, пока не будет обнаружен пробел, но это выглядит ужасно ...

любая помощь?

Спасибо:)

Ответы [ 3 ]

0 голосов
/ 10 ноября 2011

use isspace ()

Из man isspace

isspace () проверяет наличие пробелов.В локалях "C" и "POSIX" это: пробел, подача формы ('\ f'), перевод строки ('\ n'), возврат каретки ('\ r'), горизонтальная табуляция ('\ t') и вертикальная вкладка ('\ v').

0 голосов
/ 10 ноября 2011

Sscanf сделает все для вас:

char *s="\nmary  julia      anne     \t            steve", o[100];
int n=0;
while( sscanf(s+=n,"%99s%n",o,&n)==1 )
  puts(o);
0 голосов
/ 10 ноября 2011
str += strspn(str, " \t\r\n" );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...