Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ozzy_b
2 / 2 / 0
Регистрация: 02.10.2012
Сообщений: 169
#1

Почему strtok неправильно делит строку - C++

08.11.2012, 23:19. Просмотров 338. Ответов 3
Метки нет (Все метки)

Он должен делить по словах("делитель" - пробел) а он делит по-символьно.
C++
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
#include <iostream>
#include <string.h>
#include <conio.h>
#include <stdio.h>
using namespace std;
void inp(char[]);
void tok(char[], int);
int main()
{
 char x[100];
 int max=0, min=0;
 inp(x);
 int size=strlen(x);
 tok(x, size);
 getch();
 return 0;
}
void inp(char x[])
{
    cout<<"Input string: ";
    gets(x);
    cout<<endl;
}
void tok(char x[], int size)
{
    char *X;
    X=strtok(x, " ");
    for(int i=0; i<size; i++)
        cout<<X[i];
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.11.2012, 23:19     Почему strtok неправильно делит строку
Посмотрите здесь:

Почему strtok не переходит на новую строку? - C++
FILE* file = fopen(&quot;kakhochy.pam&quot;, &quot;r&quot;); const char separator= &quot;;&quot;; char buff; char mass; int i = 0; while(!feof(file)) {...

Использование STRTOK Разбить строку на слова, из слов составить список C++ Функция strtok - C++
Задача Дана строка слов с разделителями, в данном примере слова с пробелами Нужно, используя функцию strtok, сформировать из этих слов...

Неправильно делит - C++
Вроде бы все правильно написал, но если b&gt;60, то неправильно выделяет целое и остаток... Что не так? Подскажите пожалуйста. #include...

Разбить строку на массив слов используя strtok() - C++
Мне нужно разделить строку на массив слов используя функцию strtok(), но получается скопировать только первое слово. Подскажите пожалуйста,...

Strtok как разбить строку пополам по первому пробелу? - C++
Есть вот такая строка: 28 -1.221636 -1.183837 32.839973 0.885457 -0.348518 -0.307412 0.357200 0.834200 Мне нужно заменить первое...

Программа считывает строку, делит ее на слова и выводит в порядке убывания длины слов (Ох,функции.Где ошибка?) - C++
Помогите найти в чем ошибка, две ночи с красными глазами сижу =-O . Программа считывает строку, делит ее на слова и выводит в порядке...

Почему деструктор работает неправильно? - C++
на лабараторной столкнулся в проблемой. деструктор вызывается только один раз. #include &lt;cstring&gt; #include &lt;iostream&gt; using...

Почему программа работает неправильно - C++
не могу понять почему программа работает не правильно # include &lt;stdio.h&gt; # include &lt;conio.h&gt; # include &lt;math.h&gt; float f1(int...

Почему неправильно удаляются слова? - C++
Добрый вечер/день всем. Есть такая задача - &quot;Удалить из строки все повторяющиеся слова&quot;. Решаю её уже 9 часов с перерывами максимум 30...

Почему программа неправильно работает - C++
string IntToStr(int a) { if (a == 0) return &quot;0&quot;; string str = &quot;&quot;; int b = a; if (a &lt; 0) a *= -1; while (a &gt; 0) str =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BumerangSP
4285 / 1407 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
08.11.2012, 23:31     Почему strtok неправильно делит строку #2
C++
1
2
 for(int i=0; i<strlen(X); i++)
        cout<<X[i];
ozzy_b
2 / 2 / 0
Регистрация: 02.10.2012
Сообщений: 169
08.11.2012, 23:36  [ТС]     Почему strtok неправильно делит строку #3
BumerangSP, оно так выводит токо первую букву, а надо всю строку, токо по словах.

Добавлено через 1 минуту
точнее не букву а слово
BumerangSP
4285 / 1407 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
09.11.2012, 00:08     Почему strtok неправильно делит строку #4
ozzy_b, ну, да. Если все слова строки, то:
C++
1
2
3
4
5
6
7
 char *X;
    X=strtok(x, " ");
    do
    {
     cout<<X<<endl;
    }
    while (X=strtok(NULL," "));
Yandex
Объявления
09.11.2012, 00:08     Почему strtok неправильно делит строку
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru