Hantet
26.05.2010, 20:41
Задали по программированию задачку, с виду ну очень простая, но никак не подойти к ней правильно :(
Написать программу, которая считывает текст с консоли и выводит его на экран, добавляя после каждого предложения, сколько раз встретилось в нем введенное с клавиатуры слово.
Я сразу попробовал так:
#include <iostream>
#include <string.h>
#include <stdio.h>
#include <conio.h>
using namespace std;
void main()
{
char *str1; //весь текст
char *str2; //сюда записываются предложения (по очереди)
char *str3; //искомое слово
unsigned int i,next=0;
scanf("%s", &str1);
scanf("%s", &str3);
for(i=0;i<strlen(str1);i++)
{
strcat(str2, str1[i]); //дописываем в str2 (предложение) букву
if(str1[i] == '.')
{
while(strstr(str2, str3)) //ищем вхождения
next++;
printf("%s (%i)", str2, next); //вывод предожения и кол-во повторений слова
next = 0; //обнуляем кол-во повторений слова
str2 = ""; //обнуляем текущее предложение
}
}
getch(); //ждём нажатия Enter
}
Компилятор ругается:
strcat: невозможно преобразовать параметр 2 из 'char' в 'const char *'
к тому же, если в тексте сделать пробел, то в переменную запишется только текст до пробела.
Буду очень благодарен за помощь, программу кровь из носа надо написать :(
Написать программу, которая считывает текст с консоли и выводит его на экран, добавляя после каждого предложения, сколько раз встретилось в нем введенное с клавиатуры слово.
Я сразу попробовал так:
#include <iostream>
#include <string.h>
#include <stdio.h>
#include <conio.h>
using namespace std;
void main()
{
char *str1; //весь текст
char *str2; //сюда записываются предложения (по очереди)
char *str3; //искомое слово
unsigned int i,next=0;
scanf("%s", &str1);
scanf("%s", &str3);
for(i=0;i<strlen(str1);i++)
{
strcat(str2, str1[i]); //дописываем в str2 (предложение) букву
if(str1[i] == '.')
{
while(strstr(str2, str3)) //ищем вхождения
next++;
printf("%s (%i)", str2, next); //вывод предожения и кол-во повторений слова
next = 0; //обнуляем кол-во повторений слова
str2 = ""; //обнуляем текущее предложение
}
}
getch(); //ждём нажатия Enter
}
Компилятор ругается:
strcat: невозможно преобразовать параметр 2 из 'char' в 'const char *'
к тому же, если в тексте сделать пробел, то в переменную запишется только текст до пробела.
Буду очень благодарен за помощь, программу кровь из носа надо написать :(