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

Векторы С++

09.06.2020, 01:55. Показов 1219. Ответов 3

Студворк — интернет-сервис помощи студентам
Дорогие друзья, если кто-то разбирается и может помочь, буду безумно благодарна.
Проблема следующая: в цикле передаю параметры в функцию, которая удаляет гласные в слове (сама функция написана на ассемблере).
Вот передача параметров:
Code
1
del((char*)str[i].c_str(), static_cast<int>(strlen((char*)str[i].c_str())), (char*)result[i].c_str());
Типы следующие
Code
1
vector <string> str, result;
Нужные строки помещаю в строки вектора str, а в векторе result они все заполнены нулями.
Описание самой функции:
Code
1
extern "C" void __cdecl del(char *st, int n, char *res);
Все работает с подключенным ассемблером, однако только один раз.
При выходе из функции по отладчику видно, что заполняется каждый раз только один элемент вектора, остальные при этом остаются равными нулю, и ничего с этим сделать у меня не получается.
Возможно, кто-то сталкивался с чем-то подобным...
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.06.2020, 01:55
Ответы с готовыми решениями:

Векторы в с++
Привет мостера помогите решить задания. Реализовать структуру данных вектор, содержащий следующие методы: добавить...

Векторы
Имеется структура &quot;Магазины&quot;, где в качестве полей есть: Название, Город, Средняя зарплата сотрудников и Количество сотрудников. Также...

Векторы
Создаю вектор vector&lt;vector&lt;Point&gt;&gt; contours; После чего мне нужно создать аналогичный простой массив Array, элемент которого был бы...

3
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
09.06.2020, 02:17
Лучший ответ Сообщение было отмечено triton17 как решение

Решение

Цитата Сообщение от triton17 Посмотреть сообщение
Code
1
del((char*)str[i].c_str(), static_cast<int>(strlen((char*)str[i].c_str())), (char*)result[i].c_str());
C++
1
2
3
size_t len = str[i].length();
result[i].resize(len);
del(str[i].c_str(), len, &result[i][0]);
Цитата Сообщение от triton17 Посмотреть сообщение
Code
1
extern "C" void __cdecl del(char *st, int n, char *res);
C++
1
extern "C" void __cdecl del(const char *st, int n, char *res);
1
0 / 0 / 0
Регистрация: 20.01.2019
Сообщений: 5
09.06.2020, 03:46  [ТС]
Большое спасибо, так код выглядит гораздо понятнее и читабельнее даже для меня самой! Также большое спасибо за функцию изменения длины элемента вектора, тоже минус одна проблема. Однако проблема с записью данных в последующие элементы никуда не делать, к сожалению. Возможно, ошибка где-то в другом месте. Поэтому на всякий случай приложу код целиком:
Code
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
extern "C" void __cdecl del(const char *st, int n, char *res);int main()
{vector <string> str, result;string s1;
    auto count = 0u;
    int j, j1, a, mas[15];cout << "How many words in your string?" << endl;
    cin >> count;
    cin.ignore();for (auto i = 0u; i < count; i++) {
        cout << "Input word number " << i + 1 << " through ENTER: ";
        getline(cin, s1);
        str.emplace_back(s1);  //str.push_back(S)
        result.emplace_back(" ");}
    cout << "\nYour words:\n";
    for (const auto &i : str) cout << i << '\n';
    cout << "How many words you want to edit?" << endl;
    cin >> a;
    cout << "Input numbers of words you want to edit through ENTER" << endl;
    for (int i = 0; i < a; i++) {
        cin >> mas[i];
    }
 
    cout << "Changed words:" << endl;
    for (int i = 0; i < count; i++) {
        for (j = 0; j < a; j++) {
            if (i == mas[j]-1 )
            {size_t len = str[i].length();
                result[i].resize(len);
                del(str[i].c_str(), len, &result[i][0]);
                cout <<result[i] << endl;
            }
        }
    }
}
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
09.06.2020, 13:24
Цитата Сообщение от triton17 Посмотреть сообщение
Однако проблема с записью данных в последующие элементы никуда не делать, к сожалению.
В этом коде есть еще ошибки, но они на описываемое вами поведение влиять не должны.
Я скомпилировал ваш код с заведомо корректной функцией-заглушкой для del и он сработал как надо, если вводить данные строго так, как ваша программа ожидает (т.к. у вас нет никакой обработки ошибок). Если вы проверяете на строго корректном вводе, у вас тоже должно все получиться. Если конечно в вашей функции del нет ошибки.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.06.2020, 13:24
Помогаю со студенческими работами здесь

Векторы
Добрый день, помогите пожалуйста решить задачку, в моей программе могут быть ошибки, т.к. в материале я полный 0. /*IV. Ðåàëèçîâàòü â...

векторы С++
С текстового файла считать действительные числа в вектор. С вектора удалить все нечетные положительные числа. Образованные элементы...

Векторы
Добрый день форумчане! обнаружил что вектор можно объявить следующим образом : vector&lt;MyClass *,MyClass2 *&gt; vector_name;...

Векторы
Определите полусумму длин двух векторов А(1,5; 2,5; -0,3) и В(-11,7; -9,3; 2,5; 3,7; -1,2). Вычислите, длины вектора оформив в виде функции.

Векторы
Доброго времени суток! Очень нужна помощь в двух задачах. Заранее спасибо! 1. Дан целочисленный вектор С(6). Найти сумму тех его...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru