Показать сообщение отдельно

  #6  
Старый 23.12.2009, 21:51
Semus
Новичок
Регистрация: 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;
}
 
Ответить с цитированием