
23.12.2009, 21:51
|
|
Новичок
Регистрация: 27.03.2009
Сообщений: 12
С нами:
9013169
Репутация:
0
|
|
Сообщение от Trotter
я конечно не совсем силён и могу ошибаться, но тебе надо выделять память...
типо вместо char * stroka писать char * stroka new char[256];
и чтобы вот такова бреда не было printf ("kolichestvo vhogdenii)
подрубай locale.h и в main(){setlocale(LC_ALL, "RUSSIAN"); код... printf("Привет")}
а по поводу выделения памяти я не знаю как на си сделать malloc юзай хотя у меня так заработало как первый раз писал тока вот цикл странный зацикленный какой то)) с циклом извиняй помочь не могу, и чтобы строку к строке прировнять надо по моемому перегрузку оператора сделать... хотя я дилетант тоже не ругайте меня ))
Верно подмечено, ты "не совсем силен" . Ты какой-то бред несешь: "память выделять", "перегрузку операторов делать ". И не нужно подрубать "locale.h", и прочее что ты там написал. Все решилось проще и самостоятельно через пол часа после появления поста:
Код:
//Задание №1
//определяем число вхождений введеного //пользователем слова в введеную пользователем строку
# include <stdio.h>
# include <stdlib.h>
# include <string.h>
int main ()
{
char stroka[300]; //данный массив предназначен для хранения введеной пользоватлем строки, объем до 300символов
char * pStr = stroka; //этот указатель используется для поиска данных, ему дается адрес первого элемента
//вводим строку из которой осуществляем поиск
printf ("Vvedite stroku: "); //просим пользователя ввести строку
gets (stroka); //пользователь вводит строку
// вводим строку которую будем искать
char iskStroka[300]; //массив предназначенный для хранения искомой строки
char * iskom = iskStroka; //этот указатель используется для поиска и подсчета числа вхождения подстрок в строку
//вводим искомую подстроку
printf ("Vvedite iskomuy slovo: "); //просим пользователя ввести искомое слово
scanf("%s", iskStroka);// ввод искомого слова
char * point = 0;//указатель на на номер на найденый номер
int i = 0; // переменная - счетчик, используем для подсчета кол-ва вхождений подстроки в строку
// следующий цикл обеспечивает подсчет вхождений подстроки в строку
do //далее начинается вечный цикл с постусловие
{
point = strstr(pStr, iskom);//ищем позицию вхождения подстроки в строку
pStr=point+1; //при помощи указателя как-бы обрезаем длинну строки,
//что при следующем цикле осуществился поиск данных
//с позиции найденой строки+1.
//Если не поставить "+1" цикл будет бесконечен, так как постоянно
//будет находиться первое вхождение с которого теперь начинается адрес поискового указателя pStr
if (point==NULL) {break;}; //если на очередном шаге не было найдено вхождения - прерываем цикл
i++;
}
while (true);//цикл вечен, если его не прервать
//закончили подсчет вхождений строки в подстроку
printf ("kolichestvo vhogdenii = %d\n", i);// выводим результат на экран
system ("PAUSE"); //ждем от пользователя нажатия какой-либо клавиши
return 0;
}
|
|
|