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

Строки - C++

Восстановить пароль Регистрация
 
Chupa-Chups
Сообщений: n/a
19.01.2010, 18:27     Строки #1
Дано предложение. Определить количество слов, в которых содержится хотя бы одна заданная буква
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.01.2010, 18:27     Строки
Посмотрите здесь:

Добавить в конец первой строки, последние n2-n1 слов второй строки C++
C++ Скопировать второе слово каждой строки в начало следующей строки
Из символов введенной строки сформировать две строки - из цифр и букв C++
C++ Найти номер строки матрицы, наиболее отдаленный от первой строки
C++ Определить длину строки,удалить из строки все символы, которые равны заданному
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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
3029 / 2350 / 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
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
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     Строки
Ответ Создать тему
Опции темы

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