С помощью текстового редактора создать файл, содержащий текст, длина кото¬рого не пре-вышает 700 символов (длина строки текста не должна превышать 70 символов).
Имя файла должно иметь расширение DAT. Написать программу, которая:
- выводит исходный текст на экран дисплея;
- выводит текст на экран дисплея еще раз, заключая заданное слово в кавычки (заданное слово вводить с клавиатуры);
#include <fstream.h>
#include <iostream.h>
#include <conio.h>;
#include <string.h>;
#include "strlib.cpp";
//using namespace std;
void main()
{
// const int Max=1000;
char* s;
ifstream infile("Test.txt");
while (!infile.eof())
{
infile.getline(s, 80);
cout<<s<<endl; //ўлў®¤Ёв бва®ЄЁ
}
cout<<"\n‚ўҐ¤ЁвҐ б«®ў® Є®в®а®Ґ 室Ёвмбп ў д ©«Ґ";
char *word;
cin>>word;
while (!infile.eof() )
{
infile.getline(s,80);
int i;
i=spos(word,s);
if (i!=0)
{
sinsert(" " " ",s,spos(word,s));
sinsert(" " " ",s,spos(word,s) + slength(word));
}
cout<<s<<endl;
}
cout<<"„«п ўл室 Єг¤л Ёвм вЄЁвҐ";
cout<<endl;
getche();
}
Хочешь - попробуй перевести с Паскаля (хотя я сомневаюсь, уж очень специфическая в Паскале работа со строками...) Задание - практически один к одному, нужно слово выделять не кавычками, а цветом.
http://forum.pascal.net.ru/index.php?s=&showtopic=7259&view=findpost&p=52286
Ничем помочь не могу - sinsert не является стандартной функцией C/C++, так что я понятия не имею, что именно там делается...
А вся твоя программа завязана на использовании этой самой sinsert
Volvo вот здесь есть эта функция sinsert
Жаль сам не могу помочь решить задачу, так как плохо разбираюсь в этом.
Прикрепленные файлы
STRLIB_.txt ( 1.18 килобайт )
Кол-во скачиваний: 371
Ирин, у тебя в программе немного неправильно использовались указатели на строку (память под саму строку не выделялась)... Я подправил кое-что, сейчас программа работает (правда, частично: если в одной строке есть несколько введенных слов, то кавычками выделяется только первое из них). Смотри комментарии...
#include <fstream.h>
#include <iostream.h>
#include <conio.h>;
#include <string.h>;
#include "strlib.cpp";
// using namespace std;
int main() {
char s[71]; // Чтобы не заморачиваться с new
ifstream infile("Text700.txt");
while (!infile.eof()) {
infile.getline(s, 80);
cout << s << endl;
}
cout << "Введите слово: ";
char word[50]; // Аналогично, выделяем память статически
cin >> word;
infile.seekg(0, ios::beg); // !!! Ты дошла до конца файла, указатель надо сбросить на начало
infile.clear(); // Точно так же надо сбросить все флаги ошибок файла
while(!infile.eof()) {
infile.getline(s, 80);
if(spos(word,s) > 0) {
strcpy(s, sinsert("\"", s, spos(word, s))); // используется возвращаемое значение функции !!!
strcpy(s, sinsert("\"", s, spos(word,s) + slength(word)));
}
cout << s << endl;
}
cout << "Press any key" << endl;
getche();
return 0;
}