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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Kirill Losev
3 / 3 / 0
Регистрация: 01.10.2011
Сообщений: 249
#1

Работа со строками, без индексации - C++

20.02.2012, 15:30. Просмотров 394. Ответов 4
Метки нет (Все метки)

Снова обращаюсь за помощью в решении задачи: "определить количество вхождений в строку каждого из знаков, встречающихся в ней 1 или более раз".
Должен сказать, что у меня проблемы возникли даже с выводом строки из файла на экран.
Вот требования, предъявленные преподавателем:
  • без индексации
  • только string.h, т.е. функции str***, а, например, mem*** нельзя

Хотелось бы узнать где можно найти хорошую информацию по этой теме, ну и, кто чем сможет, помогите, если не трудно
всем заранее спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.02.2012, 15:30     Работа со строками, без индексации
Посмотрите здесь:

Работа со строками. Переписать программу без использования библиотеки <sstream> - C++
Добрый день! Помогите пожалуйста преобразовать программу, которая заменяет выбранное вами слово на другое ваше слово в строке, которую вы...

Помогите переписать программу без использования индексации - C++
Всем добрый вечер. помогите записать программу без: #include &lt;iostream&gt; #include &lt;string&gt; using std::cout; using std::cin; ...

Задача со строками без использования библиотеки string.h - C++
Дана непустая строка S. Вывести на экран Эту же строку S, но с пробелами между символами.

Работа со строками - C++
Всем доброго времени суток. Я собрался поступать (в свои-то 22, года, балбес), и сдаю ЕГЭ по информатике. Все решаю более-менее в...

Работа со строками - C++
Подсчитать количество вхождений слова «мама» в строку и вывести номера первых позиций этих вхождений. Если этого слова в строке нет, то...

Работа со строками - C++
Не могу написать правильно работающую программу для условия: Написать программу, которая к каждому слову в тексте добавляет сочетание...

Работа с строками - C++
И так дано StrCChar (s, c1, s2, n) надо заменить все символы c1 в строке s, начиная с позиции n, на строку s2. Надо на с++ и желательно...

Работа со строками С++ - C++
Задача вот с таким условием: В строке все вхождения подстроки str1 заменить подстрокой str2. Str2 вводится с клавиатуры. Помогите найти...

Работа со строками в С++ - C++
Здравствуйте, вы бы не могли мне помочь решить такую задачу: Дана строка, представляющая предложение. Слова в предложении состоят из ...

Работа со строками - C++
У меня есть есть структурные переменные и указатели на них, естественно. предположим struct name() { char b=&quot;Hello!&quot;; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
Заблокирован
Автор FAQ
20.02.2012, 15:50     Работа со строками, без индексации #2
Цитата Сообщение от Kirill Losev Посмотреть сообщение
"определить количество вхождений в строку каждого из знаков, встречающихся в ней 1 или более раз".
Должен сказать, что у меня проблемы возникли даже с выводом строки из файла на экран.
Вот требования, предъявленные преподавателем:
без индексации
только string.h, т.е. функции str***, а, например, mem*** нельзя
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <stdio.h>
#include <string.h>
 
//ÔóГ*êöèÿ ïîäñ÷èòûâГ*ГҐГІ ÷èñëî âõîæäåГ*ГЁГ© ñèìâîëГ* chr
//Гў ñòðîêó text. Åñëè ïîçèöèÿ ïåðâîãî Г*Г*éäåГ*Г*îãî ñèìâîëГ* chr
//ìåГ*ГҐГҐ pos ГІГ® ñëåäîâГ*òåëüГ*Г® Г®Г* óæå áûë ïîñ÷èòГ*Г* ГЁ âîçâðГ*ГІ áóäåò 0
//ГЁГ*Г*Г·ГҐ âîçâðГ*ГІ - ÷èñëî âõîæäåГ*ГЁГ© chr
int getCharCount(char * text, long pos, char chr)
{
    int count = 0;
    char * sub = strchr(text,chr);
    if(sub)
    {
        if(pos <= strlen(text) - strlen(sub))
        while(sub)
        {
            count = count + 1;
            sub = strchr(sub + 1,chr);
        }
    }
    return count;
}
 
int main()
{
    int i, count;
    char text[1024] = {0};//äóìГ*Гѕ 1024 ñèìâîëîâ äëÿ ââîäГ* ïîëГ*ГҐ äîñòГ*òî÷Г*Г®
    while(1)
    {
        printf("Enter text(less than 1024 chars\n");
        scanf("%[^\n]",text);
        getchar();//ÓáðГ*ëè \n îò Г*Г*Г¦Г*ГІГЁГї Enter
        for(i = 0; text[i] != '\0';i++)
        {
            if((count = getCharCount(text, i, text[i])))
                printf("Symbol %c - %d times\n",text[i], count);
        }
    }
    return 0;
}
Миниатюры
Работа со строками, без индексации  
soon
2538 / 1303 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
20.02.2012, 16:00     Работа со строками, без индексации #3
Условие коряво поставлено. Или совсем нельзя без string.h, или нельзя никакие посторонние функции, кроме str*
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
 
#define SIZE 256
#define NUM 1
 
int main(void)
{
    const char str[] = "s;ioegfj0340438gsuhf-wrf";
    char arr[SIZE] = { 0 };
    char* p;
    int i;
    for(p = (char*)str; *p; ++p)
        ++*(arr + (int)*p);
    p = NULL;
    for(i = 0; i < SIZE; ++i)
        if(*(arr + i))
            printf("%c - %d\n", i, *(arr + i));
    return 0;
}
Kirill Losev
3 / 3 / 0
Регистрация: 01.10.2011
Сообщений: 249
20.02.2012, 16:29  [ТС]     Работа со строками, без индексации #4
-=ЮрА=-, спасибо вам большое
soon,
да, нельзя без string.h b и нельзя ничего, кроме, str***. спасибо
Kirill Losev
3 / 3 / 0
Регистрация: 01.10.2011
Сообщений: 249
26.02.2012, 19:33  [ТС]     Работа со строками, без индексации #5
-=ЮрА=-, у меня получилось сделать программу, используя код вашей программы, спасибо. я так же использовал ту часть кода, где началась индексация(строка 34 - начало цикла), так как я не знал больше как можно сделать без индексации. но, как оказалось, нельзя использовать индексацию даже в таком количестве. Дак вот, не могли бы Вы рассказать мне, если это возможно, как можно изменить программу, не используя индексацию вообще. заранее спасибо
Yandex
Объявления
26.02.2012, 19:33     Работа со строками, без индексации
Ответ Создать тему
Опции темы

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