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

Дан текстовый файл F. Найти, сколько раз встречается в нем слово S - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Программирование массива указателей http://www.cyberforum.ru/cpp-beginners/thread17248.html
Подскажите, в чем различие выделения памяти для массива указателей char **term;: term = (char **)malloc(10); и *term = (char *)malloc(10); И как правильно удалить память для второго случая, если он вообще верен?
C++ Вопрос от нуба) std::cout << "Hello World!\n"; return 0; } я поробывал ее написать в Борланде 6 (так как диск с книгой не удолось запустить) чето нечего не вышло( патом поставил Вижуал студию 6 там узнал что они пишется так #include <iostream.h> void main() { cout << "Hello World!\n"; } вот вопрос вов сех книгах пишут пачти одно и тоже и те же примеры вот тока непонятно в каком они компиляторе их... http://www.cyberforum.ru/cpp-beginners/thread17246.html
Как выйти?, если условие не выполняется C++
Я хотел сделать уравнение, всё пашет, но опять не получается с выходом после "RESHENIY NET". Например ввожу х=-1 и мне ввыводит сообщение "RESHENIY NET" и выдаёт ошибку т.к. он продолжает идти дальше:rtfm:. ПОМОГИТЕ ВЫЙТИ ПОСЛЕ "RESHENIY NET". Буду благодарен:) #include<stdio.h> #include<conio.h> #include<math.h> main() { int X,Y,A,B,C,D,E,F,G,H,K,L,M,N,Z; printf("VVEDITE X\n\r");...
Работа с файлами: fseek(), ftell(), etc... C++
Разбираю работу с файлами (прошу не пинать за убогость исходника), и наткнулся на одну загвоздку: программа компилируется без ошибок, но при запуске вылетает с ошибкой: "Инструкция по адресу "0x7c43e41d" обратилась по адресу "0x78131742". Память не может быть "written". Причём вылетает это только если вызывать функцию gfsize(), если её вызов закомментировать - всё работает. #include...
C++ Написать функцию, которая переворачивает число http://www.cyberforum.ru/cpp-beginners/thread17225.html
Помогите, пожалуйста с задачкой! Задачка: Дано натуральное число n и натуральные числа а1, а2... аn (n < 100). Переделать все данные числа так, чтобы цифры были записаны в обратном порядке (например, на месте 234 - 432, 100 - 1 итд.) В решении использовать функцию, которая данному числу возвращает обратное число, расчеты вести численные! Т.е. надо написать функцию, которая переворачивает...
C++ Как создавать, записывать в файл Добрый вечер!:) Подскажите пожалуйста, как создавать, записывать в файл, ввод имён файлов с клавиатуры, читение данных из файла. Если можно с примерами:). подробнее

Показать сообщение отдельно
Evge_n
0 / 0 / 0
Регистрация: 11.12.2014
Сообщений: 14
11.12.2014, 17:48
Я понимаю, что тема старая, но позволю себе побыть шаманом с бубном и воскресить её Попалась мне контрольная работа с похожими заданиями, в частности с заданием про вычитание цифр. Проанализировав код программы и откомпилировав код возник ряд вопросов, которые хотелось бы прояснить:

1. После компиляции и запуска программы выходит сообщение с ошибкой 1441, переполнение строковой переменной. Среда разработки VSExp 2010. Если убрать строку

C++
1
str.resize(str.size()-tmp.size()+2);
то ошибка не появляется. Насколько я понял приведённый выше код вполне логичен и должен при каждой итерации цикла уменьшать размер строковой переменной на то кол-во байт, которое удаляет строка
C++
1
strcpy(&str[i+3],&str[i+1+tmp.size()]);
. Почему тогда появляется ошибка?

2. Собственно не до конца понятен код удаления лишних символов
C++
1
strcpy(&str[i+3],&str[i+1+tmp.size()]);
. Если просто вывести значение str[i+3], то это будет третий символ после точки. Но с "&" выводится вся строка начиная с третьего символа. Про такое применение амперсанда относительно аргументов функции я не слышал. Знаю что он используется как унарный оператор вместе с указателем - возвращает адрес памяти.

3. До конца не разобравшись с предыдущим кодом, я решил написать что-то более понятное для меня, ну и внести своё слово в решение этой задачи Для этих благородных целей я нашёл в классе string функцию replace и написал такие строки кода:

C++
1
2
string emptystr("");
str.replace (str[i+3], tmp.size()-2, emptystr);
Здесь replace() передаётся как начальная позиция третий после точки символ, длинна фрагмента tmp.size()-2, заменяется на пустую строку. Вроде должно работать, но вывод мне совсем не понятен:

874736.1248723 fsfsfsf.sdfsdfds2331.dasf 423423434.sdfsdfsf.dfsdfsd.12//Моя исходная строка
874736.1248723 fsfsfsf.sdfsdfds2331.dasf 423423434.ssf.dfsdfsd.12// Вывод replace()

Подскажите, почему так получается? Заранее спасибо.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru