ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Парсер строк на С
  #1  
Старый 19.09.2008, 23:12
++Norton++
Участник форума
Регистрация: 20.11.2006
Сообщений: 172
Провел на форуме:
539954

Репутация: 106
По умолчанию Парсер строк на С

Сразу прошу прощения, за возможное непонятное объяснение.
Имеется char *s="test0 test1 test2". Нужно написать функцию, которая бы принимала в качестве аргумента *s и делала следующее:
Разбивала и помещала *s в массив так, чтобы:
Код:
strng[0]="test0"; 
strng[1]="test1"; 
strng[2]="test2";
Это как нибудь можно реализовать? Очень надо... Заранее огромное спасибо!
 
Ответить с цитированием

  #2  
Старый 20.09.2008, 00:33
nerezus
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме:
6490435

Репутация: 2290


Отправить сообщение для nerezus с помощью ICQ
По умолчанию

Проходишься по строке, заносишь в буфер, при пробеле сбрасываешь буффер в массив.
Все.
 
Ответить с цитированием

  #3  
Старый 20.09.2008, 01:13
pento
Участник форума
Регистрация: 03.07.2006
Сообщений: 147
Провел на форуме:
438137

Репутация: 66
По умолчанию

Цитата:
Сообщение от ++Norton++  
Сразу прошу прощения, за возможное непонятное объяснение.
Имеется char *s="test0 test1 test2". Нужно написать функцию, которая бы принимала в качестве аргумента *s и делала следующее:
Разбивала и помещала *s в массив так, чтобы:
Код:
strng[0]="test0"; 
strng[1]="test1"; 
strng[2]="test2";
Это как нибудь можно реализовать? Очень надо... Заранее огромное спасибо!
Нашлось за 1 минуту:
http://www.java2s.com/Code/C/String/String-Split.htm
 
Ответить с цитированием

  #4  
Старый 20.09.2008, 01:17
4p3
Участник форума
Регистрация: 18.08.2008
Сообщений: 159
Провел на форуме:
750247

Репутация: 92
Отправить сообщение для 4p3 с помощью ICQ
По умолчанию

Если на С, то юзай strtok.
Если на С++, то удобно юзать sstream
 
Ответить с цитированием

  #5  
Старый 20.09.2008, 01:40
Ryuzavi
Новичок
Регистрация: 10.09.2008
Сообщений: 10
Провел на форуме:
158657

Репутация: 26
По умолчанию

++Norton++, написал тебе код, думаю тебе будет все понятно (т.к. чтобы товарищу было понятно, код не оптимизировал, s[k] на null проверяется n раз например, ни какой критики).
Код:
#include <stdio.h>
void read(char str[][256], char s[])
{
    int i,k=0,j=0;
    for (i=0; i<=3; ++i)
    {
        j=0;
        while ((s[k]!=' ') && (s[k]!=NULL))
        {
            str[i][j]=s[k]; j++; k++;
        }
        str[i][j]=NULL; k++;
    }
}
void write(char str[][256])
{
    int i;
    for (i=0; i<3; ++i)
    {
        printf("%s\n", str[i]);
    }
}
int main()
{
    char s[]="test testing examination";
    char str[3][256];
    read(str, s);
    write(str);
    return 0;
}
 
Ответить с цитированием

  #6  
Старый 20.09.2008, 01:41
++Norton++
Участник форума
Регистрация: 20.11.2006
Сообщений: 172
Провел на форуме:
539954

Репутация: 106
По умолчанию

Спасибо, разобрался!
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
парсер мыл Sn@k3 Болталка 4 27.08.2008 00:06
Php перевод строк lomerok PHP, PERL, MySQL, JavaScript 7 28.05.2008 16:41
Парсер Txt файла Xszz PHP, PERL, MySQL, JavaScript 38 09.04.2008 13:09
Чтение строк из файла George767 PHP, PERL, MySQL, JavaScript 2 14.02.2008 00:26



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ