Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
5 / 5 / 3
Регистрация: 13.10.2009
Сообщений: 543

Запись в строку char*, входящую в структуру

20.04.2015, 22:35. Показов 3425. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Данная функция, преобразует строку в структуру student. Ошибки нет, но записывается ересь. Вроде и понимаю, что написано ужасно криво, но где неверно, понять не могу.
Строка представляет собой следующее: "Владимир Математика 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
31
32
33
34
35
36
struct student
{
    char* name;
    char* subject;
    int mark;
};
 
student LineToStudent(string line)
{
    student st;
    st.name = (char*)malloc(1);
    st.subject = (char*)malloc(1);
    st.mark = 0;
    int i = 0;
    int k = 1;
    while (line[i] != ' ')
    {
        st.name = (char*)realloc(st.name, k*sizeof(char));
        st.name[k] = line[i];
        i++;
        k++;
    }
    cout << st.name;
    i++;
    k = 1;
    while (line[i] != ' ')
    {
        st.subject = (char*)realloc(st.subject, k*sizeof(char));
        st.subject[k] = line[i];
        i++;
        k++;
    }
    i++;
    st.mark = atoi(&line[i]);
    return st;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.04.2015, 22:35
Ответы с готовыми решениями:

Запись символов из файла в единичный char и строку
Всем привет, учусь получать данные из файла и нашёл такое явление: если у нас есть такой код: ifstream gt(&quot;test.ini&quot;); ...

Ввести строку С-типа (char[] или char*). Вывести строку
Ввести строку С-типа (char или char*). Вывести строку. Объясните пожалуйста как делается)

описать функцию, возвращающую наибольшую цифру, входящую в запись числа типа LongInt.
описать функцию, возвращающую наибольшую цифру, входящую в запись числа типа LongInt.

28
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,875
21.04.2015, 11:18
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Bushmeister Посмотреть сообщение
Лишние переменные счетчики вне тела циклы - очень нехорошо.
чем не хорошо?
Цитата Сообщение от Bushmeister Посмотреть сообщение
Дк надо сразу учиться правильно.
правильно это как?
создается впечатление этого фанатизма
есть одно мнение, другое неправильное
Цитата Сообщение от Bushmeister Посмотреть сообщение
не забывая, что все переменные объявленные в цикле пропадут и о них не надо будет заботиться
а что о них заботится?
если уж так хочешь то можно вот так
C++
1
2
3
4
5
6
7
{
int i=0
for(; i<blabla; i++)
     a[i]=b[i];
   
  a[i]='\0';
}
i не будет видна за пределами блока
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8217 / 5048 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
21.04.2015, 11:34
IrineK,
C++
1
2
#include <cstring>
#include <string>
0
 Аватар для IrineK
2023 / 1641 / 425
Регистрация: 23.02.2011
Сообщений: 6,002
Записей в блоге: 25
21.04.2015, 15:12
MrGluck, it depends.
0
22 / 22 / 10
Регистрация: 19.03.2015
Сообщений: 137
21.04.2015, 15:19
А зачем эти танцы с бубном, если можно в цикле for объявить?
чем не хорошо?
Надо следить чтобы больше нигде эта переменная не встречалась(риск возникновения ошибок в коде), занято имя для переменной.
0
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,875
21.04.2015, 15:32
Цитата Сообщение от Bushmeister Посмотреть сообщение
А зачем эти танцы с бубном, если можно в цикле for объявить?
кроме классического
C++
1
for(int i;i<n;i++)
другое применение цикла знаешь
например вот такое
C++
1
for(;*ptr;*ptr++)
Цитата Сообщение от Bushmeister Посмотреть сообщение
Надо следить чтобы больше нигде эта переменная не встречалась(риск возникновения ошибок в коде), занято имя для переменной.
для этого и используются осмысленные имена
а если переменная используется только на определенном участке вполне можно использовать еще раз
C++
1
2
3
4
int i
for(i=0;i<n;i++) 
for(i=0;i<n;i++) 
for(i=0;i<n;i++)
ничем не страшнее чем
C++
1
2
3
for(int i=0;i<n;i++) 
for(int i=0;i<n;i++) 
for(int i=0;i<n;i++)
и скорее всего приведет к такому же сгененренному коду
0
22 / 22 / 10
Регистрация: 19.03.2015
Сообщений: 137
21.04.2015, 19:31
C++
1
для этого и используются осмысленные имена
и это осмысленное имя будет занято впустую если цикл один.
C++
1
2
3
4
int i
for(i=0;i<n;i++) 
for(i=0;i<n;i++) 
for(i=0;i<n;i++)
Ну, это отдельная история. Тут вполне разумно такое объявление, не спорю.
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8217 / 5048 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
21.04.2015, 21:20
Цитата Сообщение от IrineK Посмотреть сообщение
MrGluck, it depends.
К чему эта фраза? Типо если по английски, то будет больше смысла? Необходимо явно указывать хедеры, в которых определены функции или классы. Иначе код будет не переносим между компиляторами (а возможно даже и их версиями). И это явно не то место, где стоит создавать зависимости. Мы же пишем на С++, а не Visual Studio C++.
Например
0
 Аватар для IrineK
2023 / 1641 / 425
Регистрация: 23.02.2011
Сообщений: 6,002
Записей в блоге: 25
22.04.2015, 02:45
Цитата Сообщение от MrGluck Посмотреть сообщение
Иначе код будет не переносим между компиляторами
Согласна. Об этом и шла речь в иностранной фразе.
0
 Аватар для IrineK
2023 / 1641 / 425
Регистрация: 23.02.2011
Сообщений: 6,002
Записей в блоге: 25
22.04.2015, 03:01
Цитата Сообщение от MrGluck Посмотреть сообщение
Мы же пишем на С++, а не Visual Studio C++.
А вот и C++CBuilder XE7
Двух хедеров также достаточно.
Миниатюры
Запись в строку char*, входящую в структуру  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.04.2015, 03:01

Найти максимальную по длине неубывающую подпоследовательность цифр, входящую в данную строку
4.Пусть дана строка S, состоящая только из цифр. Найти максимальную по длине неубывающую подпоследовательность цифр,входящую в S.

char* to char или (char* запись в файл)
Привет всем! Вопрос: Как можно перевести char* в char или записать даные в файл с char*? Пробовал так: char *szBuffer =...

Что означает такая запись char *smt=new char[1]?
что означает такая запись char *smt=new char?

Запись строки char в массив char
Глупый вопрос, но что поделать, многое забыл... Хочу записть строку типа char в массив строк типа char, но выдает ошибку что...

Запись в *char элемента из массива *char[i]
Есть динамический массив, например char *drives = {&quot;A:&quot;, &quot;B:&quot;, &quot;C:&quot;, &quot;D:&quot;, &quot;E:&quot;, &quot;F:&quot;, &quot;G:&quot;, &quot;H:&quot;, &quot;I:&quot;, &quot;J:&quot;, &quot;K:&quot;,...


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

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
Новые блоги и статьи
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения: - добавлена многоязычность - добавлено снятие скриншотов - добавлено поддержание бафов хождения по воде (для жреца, дк и шамана) - и так, по. . .
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу))) Критические ошибки, мешающие компиляции и. . .
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата) Этот документ предназначен для того, чтобы новый чат Claude мог продолжить работу без необходимости заново разбираться в. . .
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса Калибровка параметров симбиотической модели: технический обзор Содержание: Введение Постановка проблемы Технические аспекты реализации Процесс внедрения изменений
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0» https:/ / ibb. co/ NnkGpfMd Представленная интегрированная схема описывает непрерывную нелинейную. . .
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы ### Аннотация Представлено исследование по разработке агентной модели микоризной. . .
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики Контекст Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
Сукцессия 11. Проверка орудий перед войной: разработка через тестирование
anaschu 27.06.2026
Как не дать модели соврать самой себе: проверки для симуляции микоризной сукцессии Введение Когда вы строите математическую модель живой системы — грибов, растений, почвы — главная опасность. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru