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

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

Войти
Регистрация
Восстановить пароль
 
Chupa-Chups
Сообщений: n/a
#1

Строки - C++

19.01.2010, 18:27. Просмотров 317. Ответов 4
Метки нет (Все метки)

Дано предложение. Определить количество слов, в которых содержится хотя бы одна заданная буква
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lego69
 Аватар для lego69
3 / 3 / 1
Регистрация: 19.01.2010
Сообщений: 26
19.01.2010, 18:39     Строки #2
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
#include <stdio.h>
#include <iostream.h>
#include <string.h>
#include <conio.h>
#include <alloc.h>
 
int main()
{
    char   text[] = "abcdcba sdg erger fda ddffdd srwrrjn lkdba anna sfnwjw";
    char * word;
    int len,count=0;
    char bukva[1]="a";
    char * delim = " .,;";  // добавь разделители, если нужно
    word = strtok(text, delim);
    while(word)
    {
    len=strlen(word);
    for(int i=0;i<len;i++)
        if( word[i]==bukva[0] ) 
       { count+=1; break;}
 
            cout << count << endl;
        word = strtok(NULL, delim);
    }
    getch();
    return 0;
}
должно работать
kazak
 Аватар для kazak
3030 / 2351 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
19.01.2010, 18:45     Строки #3
lego69, вместо цикла for лучше сделать так
C
1
2
if (strstr(word, bukva))
   count++;
lego69
 Аватар для lego69
3 / 3 / 1
Регистрация: 19.01.2010
Сообщений: 26
19.01.2010, 19:04     Строки #4
Цитата Сообщение от kazak Посмотреть сообщение
lego69, вместо цикла for лучше сделать так
C
1
2
if (strstr(word, bukva))
   count++;
да, забыл о существовании этой функции
easybudda
Эксперт С++
 Аватар для easybudda
9412 / 5435 / 917
Регистрация: 25.07.2009
Сообщений: 10,428
19.01.2010, 19:05     Строки #5
Всё ещё проще...
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <string.h>
 
#define SPCHARS " ,.\t\n"
 
int main(void){
    char str[] = "The cat has given birth four kittens. Three white and one black.";
    char to_find = 'a', *p;
    int count = 0;
    
    printf("%s\n", str);
    for ( p = strtok(str, SPCHARS); p != NULL; p = strtok(NULL, SPCHARS) )
        if ( strchr(p, to_find) )
            ++count;
    printf("%d words contains '%c' letter.\n", count, to_find);
    return 0;
}

Не по теме:

Если кто не в курсе, попробуйте эту фразу на translate.ru перевести...

Yandex
Объявления
19.01.2010, 19:05     Строки
Ответ Создать тему
Опции темы

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