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

GCC/Clang bug - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Написать код (декодировать строки, метод сдвига) http://www.cyberforum.ru/cpp-beginners/thread797367.html
Доброго времени суток! Перейду сразу к делу, нужно написать код, который будет декодировать нужные для меня строки. Текст закодирован методом сдвига, но не методом Цезаря. Символы которые используются для кодировки: АБВГДЕЁЖЗИКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ01234567890,.!?":-_Z Z это перевод строки Ключ от 4 до 50. Подсобите, я только начинаю программировать на C++
C++ Строковые массивы Приветствую, господа программисты! Не могу разобраться с функциями, в которых присутствуют строки, нужна помощь. Мне нужно сгруппировать функции по работе со строками: ввод массива строк, вывод, сортировка. С обычными числами справился, тут не могу вообще. Заранее благодарен http://www.cyberforum.ru/cpp-beginners/thread797349.html
Нахождение квадратного корня C++
3 задание. Си знаю на самом простом уровне, написал код для решения задачи, но не совсем уверен в его правильности, потому прошу знатоков проверить и указать на ошибки. Спасибо. #include <iostream.h> #include <math.h> using namespace std; int fact(int n) //Факториал { if ((n=0) || (n=1)) return 1;
C++ пример с использованием strcpy
задан текст. удалить из нее все слова, длина которых четная (т.е. дан текст, скопировать все нечетные слова из этого текста, и вывести в массив эти скопированные слова)
C++ Разработка классов, создание конструкторов и деструкторов http://www.cyberforum.ru/cpp-beginners/thread797319.html
Здравствуйте, помогите решить следующее задание: Постpоить класс для pаботы со cтpоками. Класс должен включать следующие поля: массив для хpанения стpоки, его максимальную длину, вpемя создания стpоки. В начале строки храниться реальная длина строки. Класс должен обеспечивать пpостейшие функции для pаботы с данными стpуктуpами: изменение стpоки, вывод стpоки, нахождение подстpоки в cтpоке и...
C++ Вычислить значение переменной Вычислить значение переменной z z=sin(a)+b, где а=\sum_{k=i}^{i+5} {f}_{i+5}(k) b=\prod_{k=i}^{i+8}{f}_{i+6}(k) i -вводиться с клавиатуры, k - целые числа. Вывести значение i, a, b, z подробнее

Показать сообщение отдельно
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
28.02.2013, 23:40     GCC/Clang bug
Пытаюсь разбить строку на токены при помощи массива указателей и strtok. Вот рабочий и неправильный вариант, так как присутствует повторное выделение памяти для одного и того-же указателя:
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
#include <iostream>
#include <cstring>
 
char str[] = "Hello,dow,base,ddddw,face,place,drow.";
int count;
 
int main()
{
    char* ptr = strtok(str, ",.");
    char** clt = new char*[strlen(str)];
    clt[count] = new char[strlen(ptr)+1]; // выделяем память в первый раз
 
    while (ptr)
    {
        clt[count] = new char[strlen(ptr)+1]; // повторное выделение памяти
        strcpy(clt[count], ptr);
        ++count;
 
        ptr = strtok('\0', ",.");
    }
 
    for (int i = 0; i < count; ++i)
        std::cout << clt[i] << '\n';
 
}
результат:
Bash
1
2
3
4
5
6
7
8
9
ilyuha21st@coldshoot:~/projects$ ./prog
Hello
dow
base
ddddw
face
place
drow
ilyuha21st@coldshoot:~/projects$
А вот вариант, как мне кажется верный:
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
#include <iostream>
#include <cstring>
 
char str[] = "Hello,dow,base,ddddw,face,place,drow.";
int count;
 
int main()
{
    char* ptr = strtok(str, ",.");
    char** clt = new char*[strlen(str)];
   
    while (ptr)
    {
        clt[count] = new char[strlen(ptr)+1]; // выделяем память для токена один раз
        strcpy(clt[count], ptr);
        ++count;
 
        ptr = strtok('\0', ",.");
    }
 
    for (int i = 0; i < count; ++i)
        std::cout << clt[i] << '\n';
 
}
результат:
Bash
1
2
3
4
5
6
7
8
9
10
ilyuha21st@coldshoot:~/projects$ g++ main.cpp -o prog -Wall -pedantic -W
ilyuha21st@coldshoot:~/projects$ ./prog
пїЅ ?   o
dow
base
ddddw
face
place
drow
ilyuha21st@coldshoot:~/projects$
первый токен - просто мусор. В чём ошибка не пойму.

Добавлено через 4 часа 5 минут
Ребята, кто может пользоваться отладчиком (или просто кто в курсе) покажите в чём загвостка.

Добавлено через 1 час 37 минут
Ребята, откомпилируйте, пожалуйста, второй код в студии и скажите результат. Я не пойму в коде дело или с компилятором траблы...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 15:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru