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

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

Войти
Регистрация
Восстановить пароль
 
 
Оленька*
2 / 2 / 0
Регистрация: 15.12.2010
Сообщений: 58
#1

Строки* - C++

15.12.2010, 15:51. Просмотров 883. Ответов 15
Метки нет (Все метки)

Ввести строку и слово. Определить и вывести, сколько раз встречаются
в строке буквы, перечисленные в слове.

Ha Cu.

Заранее спасибо за помошь.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2010, 15:51
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Строки* (C++):

Сгенерировать две произвольные строки и определить, является ли какое-либо слово первой строки частью второй строки - C++
Сгенерировать две произвольные строки и определить, является ли какое-либо слово первой строки частью второй строки. 1. Я дуб дубом,даже...

Добавить строки, начиная со строки К1 и до строки К2, в динамический массив строк - C++
Есть динамический массив строк. Заполняется, т.е. размер его уже известен будет. Но дальше нужно сделать задание: "Добавить строки, начиная...

Удалить строки динамической матрицы, начиная со строки К1 и до строки К2 - C++
Сформировать динамический двумерный массив, заполнить его случайными числами и удалить строки, начиная со строки К1 и до строки К2 вот...

Ввести две символьных строки. Выполнить поиск второй строки в первой и вывести номер позиции первой строки, с которой вторая строка содер-жится в ней - C++
Ввести две символьных строки. Выполнить поиск второй строки в первой и вывести номер позиции первой строки, с которой вторая строка...

Функция перезаписывает символы строки заданным количеством символов другой строки - C++
Программа работает. Но не совсем правильно. В конечной строке появляются непонятные символы, которых быть там не должно. В программе нельзя...

Чтение через fscanf_s части строки с пробелом (и запись этой же строки) - C++
нужно записать в файл строку, содержащую через табуляцию int, char, char, char, float, int. Далее необходимо из такой же строки вывести...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
easybudda
Модератор
Эксперт CЭксперт С++
9530 / 5523 / 932
Регистрация: 25.07.2009
Сообщений: 10,608
15.12.2010, 16:21 #2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <string.h>
 
int main(void){
    char str[BUFSIZ], wrd[BUFSIZ], * p;
    int cnt;
    
    printf("String: ");
    scanf("%[^\n]%*c", str);
    printf("Word: ");
    scanf("%s", wrd);
    
    printf("Same letters: ");
    for ( cnt = 0, p = strpbrk(str, wrd); p; ++cnt, p = strpbrk(p + 1, wrd) )
            printf("%c", *p);
    printf("\n%d matches found.\n", cnt);
    
    return 0;
}
Оленька*
2 / 2 / 0
Регистрация: 15.12.2010
Сообщений: 58
15.12.2010, 16:49  [ТС] #3
Спасибо=*, а можно с пояснениями?
easybudda
Модератор
Эксперт CЭксперт С++
9530 / 5523 / 932
Регистрация: 25.07.2009
Сообщений: 10,608
15.12.2010, 18:53 #4
Цитата Сообщение от Оленька* Посмотреть сообщение
а можно с пояснениями?
Да тут просто всё... Описание функции strpbrk прочитайте, и Вам понятнее будет... Если всё равно будут вопросы - спрашивайте. А писать, для чего нужны <stdio.h>/printf/scanf - да вроде справочников полно...
Оленька*
2 / 2 / 0
Регистрация: 15.12.2010
Сообщений: 58
17.12.2010, 16:12  [ТС] #5
"%[^\n]%*c" - зачем эти символы?

Добавлено через 32 секунды
"%[^\n]%*c" - зачем эти символы?

( cnt = 0, p = strpbrk(str, wrd); p; ++cnt, p = strpbrk(p + 1, wrd) ) что тут делаеться, strpbrk - что это за функция?
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
17.12.2010, 17:04 #6
Цитата Сообщение от Оленька* Посмотреть сообщение
strpbrk - что это за функция?
Читаем - strpbrk().
Цитата Сообщение от Оленька* Посмотреть сообщение
"%[^\n]%*c" - зачем эти символы?
Боюсь ошибиться, но кажется мне, что этот символ означает - чтение символов в масив до символа перевода строки.
easybudda
Модератор
Эксперт CЭксперт С++
9530 / 5523 / 932
Регистрация: 25.07.2009
Сообщений: 10,608
17.12.2010, 18:12 #7
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от asics Посмотреть сообщение
Боюсь ошибиться, но кажется мне, что этот символ означает - чтение символов в масив до символа перевода строки.
Уточню немного: конструкция %[^\n] читает всё до \n и помещает прочитанное в буфер, а %*c читает одиночный символ и просто его игнорирует. Вместе получается чтение символов до перевода строки и удаление этого самого перевода строки из потока.
Оленька*
2 / 2 / 0
Регистрация: 15.12.2010
Сообщений: 58
17.12.2010, 19:21  [ТС] #8
А что делает сама программа??
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
17.12.2010, 19:33 #9
Оленька*, Определияет и выводит, сколько раз встречаются
в строке буквы, перечисленные в слове.
Naked
0 / 0 / 0
Регистрация: 22.10.2010
Сообщений: 18
17.12.2010, 19:35 #10
Ну да гениальный вопрос
Оленька*
2 / 2 / 0
Регистрация: 15.12.2010
Сообщений: 58
17.12.2010, 21:41  [ТС] #11
Я не в этом смысле....(

Как она это делает?
Fisher1992
0 / 0 / 0
Регистрация: 17.12.2010
Сообщений: 5
17.12.2010, 22:51 #12
Дана строка символов!!! заменить в ней все многоточия символами "+"!

Помогите пожалуйста решить!!!!

 Комментарий модератора 
Во-первых не задавайте в чужой теме вопросы к ней не относящиеся. А во-вторых пользуйтесь поиском - тема с таким вопросом уже есть: Дана строка символов, заменить в ней все многоточия на плюсы
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
17.12.2010, 22:51 #13
Fisher1992,
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
//////////////////////////////////////////////////////////////
//дана строка символов.заменить в ней все многоточия на плюс
//////////////////////////////////////////////////////////////
#include <stdio.h>
#include <string.h>
 
int main()
{
        char str[256];
        char str1[256]="";
        int i,k=0;
        printf("Enter string: ");
        gets(str);
        for(i=0; i<strlen(str); i++)
        {
                if((str[i]=='.') && (str[i+1] == '.') && (str[i+2] == '.'))
                {
                        str1[k]='+';
                        i += 2;
                }
                else
                {
                        str1[k]=str[i];
                }
           k++;
        }
        printf("\n");
        puts(str1);
        return 0;
}
Оленька*
2 / 2 / 0
Регистрация: 15.12.2010
Сообщений: 58
17.12.2010, 23:24  [ТС] #14
...........

Добавлено через 6 минут
Пожалуйста можете обьянить как действует программа?
Naked
0 / 0 / 0
Регистрация: 22.10.2010
Сообщений: 18
17.12.2010, 23:31 #15
А как именно работает прогарамма for ( cnt = 0, p = strpbrk(str, wrd); p; ++cnt, p = strpbrk(p + 1, wrd) )??
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.12.2010, 23:31
Привет! Вот еще темы с ответами:

Упорядочить символы строки B в алфавитном порядке и удалить латинские буквы из строки A - C++
&quot;Даны строки A и B. Если в A есть латинские буквы, а в B нет повторяющихся символов, то упорядочить символы B в алфавитном порядке и...

Прибавить ко всем элементам каждой строки максимальное значение этой строки - C++
добрый вечер! Помогите пожалуйста доработать код! Изменить текущий массив, прибавив ко всем элементам каждой строки максимальное...

Вычислить длину введенной строки и вывести символы строки с четными индексами - C++
Напишите программу, которая требует ввода строки с клавиатуры. Программа вычисляет длину строки и выводит на экран только те символы...

Как считать строки из файла, если там больше одной строки? - C++
Как считать строки из файла в массив. Если в файле одна строка, то нет проблем, но если несколько, то при использовании функции fgets ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
17.12.2010, 23:31
Ответ Создать тему
Опции темы

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