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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.80
andreymamontov
0 / 0 / 0
Регистрация: 06.06.2010
Сообщений: 12
#1

Определить количество слов, которые начинаются и заканчиваются одной и той же буквой - C++

19.06.2010, 17:06. Просмотров 2081. Ответов 12
Метки нет (Все метки)

Дана строка, состоящая из слов, разделенных пробелом. Определить количество слов, которые начинаются и заканчиваются одной и той же буквой.
Помогите хотя бы начать!
Или через какую функцию делать:
Таблица 1 Функции для работы со строками из библиотеки обработки строк
Прототип функции Описание функции
void *memcpy(void *s1, const void *s2, size_t n) Функция копирует n символов из объекта, указанного параметром s2, в объект, на который указывает s1. Функция memcpy возвращает значение s1.
void *memmove(void *s1, const void *s2, size_t n); Функция копирует n символов из объекта, указанного параметром s2, в объект, на который указывает s1. Копирование происходит так, как будто n символов из объекта s2 сначала копируются во временный массив из n символов, не перекрывающийся с массивами, на которые ссылаются параметры s1 и s2, а затем n символов из этого временного массива копируются в объект, на который указывает s1. Функция memmove возвращает значение s1.
char *strcpy(char * s1, const char *s2) Копирует строку s2 в массив символов s1. Возвращает значение s1.
char *strncpy(char *s1 , const char *s2, size_t n) Копирует не более n символов из строки s2 в массив символов s1. Возвращает значение s1.
char *strcat(char * s1, const char *s2) Добавляет строку s2 к строке s1. Первый символ строки s2 записывается поверх завершающего нулевого символа строки s1. Возвращает значение s1.
char *strncat(char *s1 , const char *s2, size_t n) Добавляет не более n символов строки s2 в строку s1. Первый символ из s2 записывается поверх завершающего нулевого символа в s1. Возвращает значение s1.
int memcmp(const void *s1, const void *s2, size_t n); Функция memcmp сравнивает первые n символов объекта, на который указывает s1, с первыми n символами объекта, на который указывает s2. Функция memcmp возвращает целочисленное значение, большее, равное, или меньшее нуля, если объект, на который ссылается si, соответственно больше, равен, или меньше объекта, на который ссылается s2 .
int strcmp(const char *s1, const char *s2) Сравнивает строки s1 и s2. Функция возвращает значение 0, меньшее, чем 0 или большее, чем 0, если s1 соответственно равна, меньше или больше, чем s2.
int strcmp(const char *s1, const char *s2, size_t n) Сравнивает до n символов строки s1 со строкой s2. функция возвращает значение 0, меньшее, чем 0 или большее, чем 0, если s1 соответственно равна, меньше или больше, чем s2.
void *memchr(const void *s, int c, size_t n) ; Функция memchr ищет первое включение символа с (преобразованного к типу unsigned char) среди первых n символов (интерпретируемых как unsigned char) объекта, на который указывает s. Функция memchr возвращает указатель на обнаруженный символ или нулевой указатель, если символ не найден.
char *strchr(const char *s, int c); Функция strchr ищет первое включение символа с (преобразованного к типу char) в строке s. Завершающий нулевой символ рассматривается как часть строки. Функция strchr возвращает указатель на обнаруженный символ или нулевой указатель, если символ в строке не найден.
size_t strcspn(const char *s1, const char *s2); Функция strcspn вычисляет максимальную длину такой подстроки в строке s1, среди символов которой нет ни одного символа из строки, на которую указывает s2. Функция strcspn возвращает длину найденной подстроки.
char *strpbrk(const char *s1, const char *s2) ; Функция strpbrk находит первое вхождение любого символа из строки s2, в строке s1. Функция strpbrk возвращает указатель на найденный символ или нулевой указатель, если ни один символ из s2 не обнаружен в s1.
char *strrchr(const char *s, int c); Функция strrchr ищет последнее включение символа с (преобразованного к типу char) в строке s. Завершающий нулевой символ рассматривается как часть строки. Функция strrchr возвращает указатель на обнаруженный символ или нулевой указатель, если символ в строке не найден.
size_t strspn(const char *s1, const char *s2); Функция strspn вычисляет максимальную длину такой подстроки, найденной в строке s1, все символы которой являются символами строки s2. Функция strspn возвращает длину найденной подстроки.
char *strstr(const char *s1, const char *s2); Функция strstr находит в строке s1, первое вхождение строки, s2 (за исключением завершающего нулевого символа). Функция strstr возвращает указатель на обнаруженную строку или нулевой указатель, если строка не найдена. Если s2 указывает на строку нулевой длины, функция возвращает значение s1.
char *strtok(char * s1, const char *s2) Последовательность вызовов strtok разбивает строку s1 на «лексемы» - логические куски, такие, как слова в строке текста - разделенные символами, содержащимися в строке s2. Первый вызов содержит в качестве первого аргумента s1, а последующие вызовы для продолжения обработки той же строки, содержат в качестве первого аргумента NULL. При каждом вызове возвращается указатель на текущую лексему. Если при вызове функции лексем больше нет, возвращается NULL.
size_t strlen (const char *s) Определяет длину строки s. Возвращает количество символов, предшествующих завершающему нулевому символу.
void *memset(void *s, int с, size_t n) ; Функция memset копирует значение символа с (преобразованного к типу unsigned char) в каждый из первых n символов объекта, на который указывает параметр s. Функция memset возвращает значение s.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.06.2010, 17:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Определить количество слов, которые начинаются и заканчиваются одной и той же буквой (C++):

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

Найти количество слов, которые начинаются и заканчиваются одной и той же буквой - C++
Проблема(

Подсчитать количество слов списка, которые начинаются и заканчиваются одной и той же буквой - C++
Как написать программу с функциями, которая подсчитывает количество слов списка Р, которые: а)начинаются и заканчиваются одной и той же...

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

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

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

12
Vladimir616
112 / 112 / 3
Регистрация: 05.07.2009
Сообщений: 224
19.06.2010, 18:27 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
using namespace std;
 
int main()
{
    char temp = ' ', temp1 = ' ';
    int count = 0;
    while(cin.peek() != '\n')
    {
        temp = cin.get();
        while(cin.peek() != ' ' && cin.peek() != '\n')
            temp1 = cin.get();
        if(temp == temp1)
            count++;
        if(cin.peek() != '\n')
            cin.get();
    }
    cout << count << endl;
    return 0;
}
1
andreymamontov
0 / 0 / 0
Регистрация: 06.06.2010
Сообщений: 12
19.06.2010, 18:56  [ТС] #3
Эта программа не со строками работает!
Спасибо, но не то что я просил((((
0
Vladimir616
112 / 112 / 3
Регистрация: 05.07.2009
Сообщений: 224
19.06.2010, 19:04 #4
andreymamontov, а с чем она работает?
0
andreymamontov
0 / 0 / 0
Регистрация: 06.06.2010
Сообщений: 12
19.06.2010, 19:30  [ТС] #5
Ты даже библиотеку по работе со строками не вписал!

Добавлено через 3 минуты
Или я тупо не понимаю как работает твоя программа, и что она делает...
0
Vladimir616
112 / 112 / 3
Регистрация: 05.07.2009
Сообщений: 224
19.06.2010, 19:36 #6
andreymamontov, или. Моя программа работает с введённой строкой посимвольно, не сохраняя её ни в каких переменных, следовательно никакая библиотека мне абсолютно не нужна. В следующий раз, чтобы не возникало подобных проблем настоятельно рекомендую более чётко описывать условие задачи.
0
andreymamontov
0 / 0 / 0
Регистрация: 06.06.2010
Сообщений: 12
19.06.2010, 19:43  [ТС] #7
Ага, ты можешь мне помочб написать программу, каторая работает через библиотеку <string.h> по функции приведеной у меня в задание,( я вот не в рубился по какой) чтобы было например 2 готовые строки...и она определяла колличество слов начинающихся и заканчивающихся одним и тем же символом
0
Vladimir616
112 / 112 / 3
Регистрация: 05.07.2009
Сообщений: 224
19.06.2010, 20:05 #8
andreymamontov, нет, не смогу. Я вообще ни разу в жизни не пользовался этой библиотекой.
0
andreymamontov
0 / 0 / 0
Регистрация: 06.06.2010
Сообщений: 12
19.06.2010, 20:19  [ТС] #9
Понятно...ща попробую что нить написать

Добавлено через 7 минут
Помогите мне(((((((((((((((((((((((((((((((((
0
Kastaneda
Нарушитель
Эксперт С++
4673 / 2877 / 233
Регистрация: 12.12.2009
Сообщений: 7,309
Записей в блоге: 2
Завершенные тесты: 1
19.06.2010, 21:22 #10
Цитата Сообщение от andreymamontov Посмотреть сообщение
через библиотеку <string.h> ...и она определяла колличество слов начинающихся и заканчивающихся одним и тем же символом
По-моему в <string.h> такой ф-ции нет. Полностью писать код некогда, вот основной кусок:

C++
1
2
3
4
5
for(int i=0;str[i]!='\0';i++){   //str - адрес строки
   ch=str[i] ; // ch - заранее объявленый char
while(str[i]!=' '||str[i]!='\0') ++i;
if(str[i-1]==ch) count++; //счетчик слов +1
//не компилировал
Добавлено через 22 минуты
блин, вместо || нужно &&, мне сессия мозг сушит)
1
qwarta
73 / 73 / 7
Регистрация: 20.11.2009
Сообщений: 238
19.06.2010, 22:36 #11
andreymamontov используйте поиск:
Распечатать все слова из каждой строки, начинающиеся и заканчивающиеся на заданную букву.
0
andreymamontov
0 / 0 / 0
Регистрация: 06.06.2010
Сообщений: 12
20.06.2010, 11:45  [ТС] #12
Спасибо) попробую до делать, хотя нам препад говорил что надо через функцию приведенную в задании

Добавлено через 11 минут
Мне надо еще легче программу, каторая приведена в поиски...мне надо тупо чтобы программа определяла количестово слов начинающихся и заканчивающихся одним и тем же символом..в уже готовой строке
0
Kastaneda
Нарушитель
Эксперт С++
4673 / 2877 / 233
Регистрация: 12.12.2009
Сообщений: 7,309
Записей в блоге: 2
Завершенные тесты: 1
20.06.2010, 15:45 #13
C++
1
2
3
4
5
int wordcount (char *str){
int count=0;
char ch;
// тут код который я написал
return count}
ф-ция готова, осталось ее в main'e вызвать, и ответ на экран вывести.

Добавлено через 3 минуты
...правда я твое задание не читал, ниасилилмногабукв) Но вроде это, то что надо.
0
20.06.2010, 15:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.06.2010, 15:45
Привет! Вот еще темы с ответами:

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

Строки. Найти все слова, которые начинаются и заканчиваются одной и той же буквой. - C++
задан текст. найти все слова, которые начинаются и заканчиваются одной и той же буквой.

Найти слова, которые начинаются и заканчиваются одной и той же буквой (перевести из Паскаля в С++) - C++
uses crt; var s,sl,sn: string; a: array of string; i,k: integer; begin write('s='); ...

Дана строка. Найти в ней те слова, которые начинаются и заканчиваются одной и той же буквой - C++
#include &lt;stdio.h&gt; #include &lt;string.h&gt; int main() { char str = &quot;Сегодня состоялось мероприятие, было весело, особенно...


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

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

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