0 / 0 / 0
Регистрация: 23.10.2015
Сообщений: 11
1

Строка: Поиск количества слов в строке, которые оканчиваются и начинаются с одной и той же буквы

26.11.2015, 23:52. Показов 1557. Ответов 2
Метки нет (Все метки)

Пожалуйста, помогите с задачей поиска количества слов в строке, которые оканчиваются и начинаются с одной и той же буквы. Как написать код именно на СИ?
Просмотрены темы форума, но ничего работающего так и не найдено.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.11.2015, 23:52
Ответы с готовыми решениями:

Определить, сколько слов начинаются с одной и той же буквы?
Помогите пожалуйста найти ошибку в программе Сколько слов начинаются с одной и той же буквы?...

Определить количество слов, которые начинаются и заканчиваются одной и той же буквой
Дана строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). Определить...

Найти количество слов, которые начинаются и заканчиваются одной и той же буквой
Дана строка, состоящая из слов, разделенных пробелами (одним или несколькими). Найти количество...

Определить, сколько слов в строке начинаются и заканчиваются одной и той же буквой
Максимальный размер строки 255 символов . За имя можем рассматривать любую связь символов , которая...

2
...
1804 / 1268 / 935
Регистрация: 12.02.2013
Сообщений: 2,063
27.11.2015, 06:03 2
Лучший ответ Сообщение было отмечено noomcih как решение

Решение

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
#include <stdio.h>
#include <ctype.h>
 
int getWord(const char* s, const char** begin, const char** end) {
    for (; *s && !isalpha(*s); ++s) { ; }
    *begin = s;
 
    for (; isalpha(*s); ++s) { ; }
    *end = s;
 
    return *end - *begin;
}
 
int doCheck(const char* begin, const char* end) {
    return tolower(*begin) == tolower(*(end - 1));
}
 
int cntWords(const char* s, int (*func)(const char* begin, const char* end)) {
    const char* begin, * end;
    int cnt = 0;
 
    while (getWord(s, &begin, &end)) {
        cnt += (func(begin, end) != 0);
        s = end;
    }
 
    return cnt;
}
 
int main() {
    char text[] = "This is Test string.";
 
    printf("%d\n", cntWords(text, doCheck));
 
    return 0;
}
Результат выполнения
0
837 / 640 / 940
Регистрация: 26.06.2015
Сообщений: 1,409
27.11.2015, 08:49 3
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <ctype.h>
 
int count_words(const char* s){
    int n = 0, k = 0;
    do {
        if(isalnum(*s))
            ++k;
        else if(k > 0){
            if(toupper(*(s - k)) == toupper(*(s - 1)))
                ++n;    
            k = 0;
        }
    } while(*s++ != '\0');
    return n;
}
 
int main(void){
    char s[] = "WOW, ADA, APL, KAZAK, Kodak.";
    printf("count: %d\n", count_words(s));
    return 0;
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.11.2015, 08:49
Помогаю со студенческими работами здесь

Посчитать количество слов в предложении, которые начинаются и заканчиваются с одной и той же буквой
Задача: необходимо посчитать кол-во слов в предложении, которые начинаются и заканчиваются с одной...

Посчитать количество слов, которые начинаются с одной буквы
Доброго времени суток. Прошу помочь в решении следующих задач: Написать программу ,считывающую...

Подсчет количества слов в строке, которые начинаются на заданную букву.
Напишите программу, которая подсчитывает количество слов в строке, которые начинаются на заданную...

Найти число слов, которые оканчиваются той же буквой, что и последнее слово. Вывести их на экран
Дана строка длиной n символов, содержащая слова, т.е. группы символов, разделенные пробелами и...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru