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

Строки... - C++

Восстановить пароль Регистрация
 
z.a.m
49 / 0 / 1
Регистрация: 17.10.2010
Сообщений: 56
16.03.2011, 18:05     Строки... #1
Функция 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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.03.2011, 18:05     Строки...
Посмотрите здесь:

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 13:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru