Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
49 / 0 / 0
Регистрация: 17.10.2010
Сообщений: 57

Строки...

16.03.2011, 18:05. Показов 880. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Функция int isAlfa (char s) получает символ и определяет, является ли он символом латиницы или кириллицы(строчным или прописным)
Функция char* strAlfa(char* str, int& lenAlfa) получает строку str и ищет первую буквенную подстроку. Функция возвращает адрес найденной подстроки и ее длину или NULL, если в строке нет буквенной подстроки символов.
Функция void qaz(char* str, int n) получает строку str и преобразует ее, переставляя в обратном порядке n первых символов.
Функция char* qazN(char* str, int n) получает строку str и число n и преобразует в строке каждую n–ую буквенную подстроку, переставляя буквы в ней в обратном порядке. Используйте при разработке алгоритма функции функции strAlfa, qaz.

Программа со стандартного устройства ввода считывает число n и фразу, состоящую из N слов (точное количество слов во фразе задает пользователь заранее). Программа изменяет каждое слово фразы с помощью функции qazN и выводит на экран только измененные слова исходной фразы. Программа подсчитывает количество не преобразованных слов в исходной фразе.

В ЗАДАЧЕ НЕЛЬЗЯ ИСПОЛЬЗОВАТЬ ВСЕ ОПЕРАЦИИ ИЗ БИБЛИОТЕКИ string.h КРОМЕ strlen
Я написал задачу, и она выполняет всё правильно, за что отдельное спасибо форумчанину Ma3a, но я не знаю как вывести только ПРЕОБРАЗОВАННЫЕ слова и как подсчитать количество НЕПРЕОБРАЗОВАННЫХ слов =(
Помогите пожалуйста!!!
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include <iostream>
#include <conio.h>
#include <string.h>
using namespace std;
int isAlfa(char );
char *gazN(char * , int );
char *strAlfa(char * , int& );
void gaz(char * , int );
void main (void)
{
        setlocale(LC_ALL,"rus");
        char str[100];
        int n, len;
        cout << "n = ";
        cin >> n;
        cout << "Введите строку: ";
                cin.sync();
        cin.get(str, sizeof(str));
 
        if(strAlfa(str, len))
                {
                        gaz(str, n); 
                        gazN(str, n);
                        cout << str;
                }       
 
        getch();
}
 
int isAlfa (char s)
{
        if (s>='a' && s<='z' || s>='A' && s<='Z'|| s>='а' && s<='п' || s>='р' && s<='я' || s>='А' && s<='Я')
                return 1;
        return 0;
}
 
char *strAlfa(char *str, int& len)
{
        len=0;
        for ( ; !isAlfa(*str) && *str; str++);
        if (*str==0)
                return 0;
        char *p=str;
        for ( ; isAlfa(*str); str++, len++);
        return p;
}
 
void gaz(char *str, int n)
{
        char p;
        int i, j;
        for (i=0, j=n-1; i<j; i++, j--)
        {
                p=*(str+j);
                *(str+j)=*(str+i);
                *(str+i)=p;
        }
}
 
char *gazN(char *str, int n)
{
        int len;
        char temp;
        char * next_sub_p=str;
        for(int i = 1; (next_sub_p=strAlfa(next_sub_p, len)); i++, next_sub_p+=len)
                if(i%n==0)
                        gaz(next_sub_p, len);
        return next_sub_p;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.03.2011, 18:05
Ответы с готовыми решениями:

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

Добавить строки, начиная со строки К1 и до строки К2, в динамический массив строк
Есть динамический массив строк. Заполняется, т.е. размер его уже известен будет. Но дальше нужно сделать задание: &quot;Добавить строки,...

Удалить строки динамической матрицы, начиная со строки К1 и до строки К2
Сформировать динамический двумерный массив, заполнить его случайными числами и удалить строки, начиная со строки К1 и до строки К2 вот...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.03.2011, 18:05
Помогаю со студенческими работами здесь

Удалить строки, начиная со строки К1 и до строки К2 (динамические массивы)
#include &lt;iostream&gt; #include &lt;ctime&gt; #include &lt;stdlib.h&gt; using namespace std; int main() { srand((int)time(0)); ...

Ввести две символьных строки. Выполнить поиск второй строки в первой и вывести номер позиции первой строки, с которой вторая строка содер-жится в ней
Ввести две символьных строки. Выполнить поиск второй строки в первой и вывести номер позиции первой строки, с которой вторая строка...

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

Заданы 2 строки; приписать первое слово второй строки к первой строке
Заданы 2 строки, состоящие из слов, разделенных пробелами. Приписать первое слово второй строки к первой. Получить из измененной первой...

Вводятся 2 строки нужно вывести элементы, которые входят в обе строки
Помогите пожалуйста решить.


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru