Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Разбиение строки на слова. / 9 сообщений из 9, страница 1 из 1
08.04.2005, 16:37
    #33005575
Mah
Mah
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбиение строки на слова.
Помогите написать функцию разбиения строки на отдельные слова. Слова разделены одним или несколькими пробелами! (Си)
...
Рейтинг: 0 / 0
08.04.2005, 16:43
    #33005585
ZrenBy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбиение строки на слова.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
    char *a,*p;

    a = strtok( str, " ");
    f.push_back(a);

    if( (p = strtok(  0 , " " )) !=  0  ){
      param.insert( std::pair<std::string,std::string>(a,p) );
    }
...
Рейтинг: 0 / 0
08.04.2005, 17:29
    #33005713
vitvsh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбиение строки на слова.
если C , то можно вот так
Код: plaintext
1.
2.
3.
char str[]="12 34 56";
char a[ 5 ];
while (sscanf(str,"%[^ \t]s",a));
...
Рейтинг: 0 / 0
08.04.2005, 17:36
    #33005731
Анатолий Широков
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбиение строки на слова.
2 vitvsh

вечный цикл возвращающий первое слово
...
Рейтинг: 0 / 0
08.04.2005, 17:45
    #33005755
vitvsh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбиение строки на слова.
угу, перестарался малость
кроме того нужно еще через пробелы "перешагивать"
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
char str[]="12 34 56";
char a[ 5 ];
int i= 0 ;
while (sscanf(str,"%[^ ]s",a))
{
i=strlen(a);
for(;str[i]!=0x20 && i<strlen(str);i++);
}
...
Рейтинг: 0 / 0
08.04.2005, 17:50
    #33005769
ZrenBy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбиение строки на слова.
vitvshесли C ,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
All versions of the C run-time libraries.
Example
// crt_strtok.c
/* In this program, a loop uses strtok
 * to print all the tokens (separated by commas
 * or blanks) in the string named "string".
 */

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

char string[] = "A string\tof ,,tokens\nand some  more tokens";
char seps[]   = " ,\t\n";
char *token;

int main( void )
{
   printf( "Tokens:\n" );
   /* Establish string and get the first token: */
   token = strtok( string, seps );
   while( token != NULL )
   {
      /* While there are tokens in "string" */
      printf( " %s\n", token );
      /* Get next token: */
      token = strtok( NULL, seps );
   }
}
Output
Tokens:
 A
 string
 of
 tokens
 and
 some
 more
 tokens

...
Рейтинг: 0 / 0
08.04.2005, 23:59
    #33006166
Partisan M
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбиение строки на слова.
найти библиотеку для работы с регулярными выражениями. Для С++ есть например в составе boost, хотя я сам её не испытывал.
...
Рейтинг: 0 / 0
09.04.2005, 15:58
    #33006461
Mah
Mah
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбиение строки на слова.
Спасибо ВСЕМ, вы мне очень помогли!
...
Рейтинг: 0 / 0
09.04.2005, 16:38
    #33006487
Lelikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбиение строки на слова.
Partisan Mнайти библиотеку для работы с регулярными выражениями. Для С++ есть например в составе boost, хотя я сам её не испытывал.

Стрельба из пушки по воробьям!
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Разбиение строки на слова. / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]