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

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

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

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

08.11.2012, 23:19. Просмотров 330. Ответов 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 неправильно делит строку
Посмотрите здесь:

C++ Почему деструктор работает неправильно?
C++ Почему неправильно выводится массив?
C++ Неправильно делит
C++ Почему программа неправильно работает
Программа считывает строку, делит ее на слова и выводит в порядке убывания длины слов (Ох,функции.Где ошибка?) C++
C++ Почему неправильно проверяется условие?
C++ Посмотрите код! (используя функцию strtok, разбить телефонный номер формата (555) 555-5555, введенный как строку, на лексемы)
C++ Разбить строку на массив слов используя strtok()
Почему программа работает неправильно C++
Почему программа неправильно считает сумму? C++
Strtok как разбить строку пополам по первому пробелу? C++
C++ Почему неправильно удаляются слова?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 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
 Аватар для BumerangSP
4283 / 1405 / 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 неправильно делит строку
Ответ Создать тему
Опции темы

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