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

Сделать упрощенную версию функции strtok() - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Создать функцию, с помощью которой можно вводить символы до тех пор, пока не будет нажато "Enter" http://www.cyberforum.ru/cpp-beginners/thread1100112.html
Нужно создать функцию, с помощью которой можно вводить символы до тех пор, пока не будет нажато "Enter". А потом нужно отобразить в программе эту строку. Моя программа позволяет сделать это, но нужно чтобы это всё было в отдельной функции. #include "stdafx.h" #include <iostream> #include <conio.h> #include <memory.h> using namespace std;
C++ Замена последней цифры на значение наименьшей цифры в записи числа N Ошибка в задании Условие:Дано натуральное число N. Получить новое число М, которое образуется из числа N путем замены последней цифры на значение наименьшей цифры в записи числа N. Пример. N = 128 452, М = 128 451. Для начала я делал проверку на то,пустое ли поле.После чего Edit1->Text = N.Length(); Если нет то я нахожу Edit1->Text = N.Length();(не знаю правильно ли я это сформулировал)После... http://www.cyberforum.ru/cpp-beginners/thread1100104.html
Построить треугольник, найти площадь данного треугольника C++
Даны отрезки a,b,c,d. Для каждой тройки этих отрезков, из которых можно построить треугольник, найти площадь данного треугольника. использовать функцию определения площади треугольника по длинам его сторон.
C++ Смоделировать операцию умножения двух целых чисел длиной до 30 десятичных цифр каждое
Смоделировать операцию умножения двух целых чисел длиной до 30 десятичных цифр каждое. Результат выдать в форме (zn)0.m E N, где длина мантиссы m - до 30 значащих цифр, а величина порядка N - до 5 цифр. Пыталась решить задачу, но не получается. Ниже привожу кусок кода, в котором перемножаются 2 числа, а результат заносится в новый объект. 1) считает не правильно 2) результат все равно не...
C++ Игра "Борьба за жизнь". Цель игры – убрать с доски все шашки противника http://www.cyberforum.ru/cpp-beginners/thread1100092.html
Здравствуйте! Помогите пожалуйста написать программу на с++. Два игрока имеют по n шашек и играют в поле m m клеток, делая ходы по очереди. Возможные ходы: 1) переставить свою шашку на соседние свободные клетки 2) переставить свою шашку через поле, если оно занято другой шашкой. Если шашка с трёх сторон окружена шашками противника, она снимается с поля. Если пустая клетка с 3-х сторон...
C++ Разработка рекурсивных алгоритмов для вычисления функции Сразу к сути!!! Я должен сделать рекурсию функции y=x+3-e^-x. Что то y2 не выводит, ошибок нету! Вот код программы: //--------------------------------------------------------------------------- #pragma hdrstop #include <tchar.h> //--------------------------------------------------------------------------- #pragma argsused #include <iostream.h> #include <conio.h> #include <math.h> подробнее

Показать сообщение отдельно
Eldies
90 / 81 / 28
Регистрация: 06.02.2014
Сообщений: 120
19.02.2014, 01:32
1) строка 29 - слово записывается в slovo на те же позиции, где оно находится в строке. Поэтому, перед вторым и последующими словами - мусор.
2) между словами в строке - пробелы, но они в этом коде никак не пропускаются, поэтому перед вторым и последующими словами - лишний пробел.
3) чтобы после слова не выводился мусор, можно поставить символ конца строки.

Добавлено через 15 минут
Например, вот так:
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <iostream>
 
using namespace std;
 
char* tokenize(char* str);
 
int main()
{
    char s1[] = "dfghj fghjk fghjk ghjk fghjk fghjk";
 
    char* word = tokenize(s1);
    while(word)
    {
        cout << word << "\n";
        delete[] word;
        word = tokenize(0);
    }
 
    std::system("pause");
}
 
char* tokenize(char* str)
{
    static char* string = 0;
    static int stpoint;
 
    if (str != 0)
    {
        string = str;
        stpoint = 0;
    }
 
    for( ; string[stpoint] == ' '; ++stpoint); // пропускаем начальные пробелы.
    
    if (! string[stpoint]) // если строка кончилась, вернуть 0
        return 0;
    
    int len = 0;
    for( ; string[stpoint+len] && (string[stpoint+len] != ' '); ++len); // считаем длину слова
 
    char* result = new char[len + 1]; // выделяем память под слово + символ конца строки
 
    for (int i = 0; i < len; ++i)   // копируем строку
        result[i] = string[stpoint + i];
    result[len] = 0;    // ставим символ конца строки
 
    stpoint += len; // сдвигаем место, откуда начнется поиск в следующий раз 
 
    return result;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru