1. Пользуйтесь тегами кода. - [code] ... [/code] 2. Точно указывайте язык, название и версию компилятора (интерпретатора). 3. Название темы должно быть информативным. В описании темы указываем язык!!!
1.Дана строка, содержащая текст. Найти слова в тексте, которые можно составить из первого и последнего слова (буквы можно использовать не более одного раза). 2.Дана строка, содержащая текст. Удалить из нее каждое слово нечетной длины.
Как такое сделать ? , выяснил одно, что делается это через функции strtok strncpy strncat Буду всем весьма благодарен ! помогите пожалуйста !!!
Вот что сделал , только первая программа работает с английским алфавитом , может кто знает как на русском сделать что бы работало , число символов в строке int lexicon[26] менял на русский , не помогает
#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(); }