IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> C++ работа со строками , нужна помощь
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 3
Пол: Мужской
Реальное имя: Женя

Репутация: -  0  +


Есть два таких задания

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

Как такое сделать ? , выяснил одно, что делается это через функции strtok strncpy strncat
Буду всем весьма благодарен ! помогите пожалуйста !!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2





Группа: Пользователи
Сообщений: 3
Пол: Мужской
Реальное имя: Женя

Репутация: -  0  +


и никто не поможет даже , обидно =( че нить сам тогда намучаю mad.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





Группа: Пользователи
Сообщений: 3
Пол: Мужской
Реальное имя: Женя

Репутация: -  0  +


Вот что сделал , только первая программа работает с английским алфавитом , может кто знает как на русском сделать что бы работало , число символов в строке int lexicon[26] менял на русский , не помогает sad.gif

 #include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <conio.h>
#include <iostream.h>
void main(void)
{
char src[32]; // объявление строки в 32 символов
int lexicon[26] = {0}; // создание целочисленного массива из 26 элементов (англ.алф)
int temp[26] = {0}; // создание целочисленного массива из 26 элементов временного англ.алф.
int i;
char *ptr, *p;
printf("Enter string: "); // вывод строки

cin.get(src,32); // получение строки
/*состовляем словарь символов*/
i = (strlen(src)-1); // присвоение значение равное длине строке -1

while(i >= 0 && src[i] != ' ') // поиск первого слова
{
lexicon[src[i]-'a']++; // добавление в словарь кода символа
src[i] = 0; // обнуление текущего символа
i--; // уменьшение i на единицу
}

ptr = strtok(src, " ,.!?"); // поиск последнего слова
while(*ptr)
{
lexicon[*ptr-'a']++;
ptr++; // переход на следующий символ
}

/*** проверяем слова ***/
while(ptr)
{

if((ptr = strtok(0, " ,.!?"))!=0) // поиск второго и следующих слов,исключая последнее
{
for( i = 0; i < 26; ++i) //обнуление временного словаря
temp[i] = 0;

p = ptr; // присвоение

while(*p)
{
temp[*p-'a']++; // заполнение временного словаря
p++; // переход на следующий символ
}
for(i = 0; i < 26; i++) // проверка слов на символы
if(temp[i] > lexicon[i])
break;
if(i == 26)
printf("%s\n", ptr); // вывод найденных слов
}
}
printf("%s\n","Press any key"); // вывод строки
getch();
}
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 27.09.2020 23:22
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name