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

Указатели.Строки и указатели - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Змейка не увеличивается в размерах http://www.cyberforum.ru/cpp-beginners/thread1163957.html
Почти дописал змейку, но есть проблема: 1) когда змейка съедает яблоко, размер не меняется. 2) Когда змейка съедает 3 яблоко, программа аварийно завершается, return value=323213...ну вы поняли ...
C++ Последний элемент незаполненного массива Как определить индекс последнего заполненного элемента массива charo'в? Допустим, есть массив str Он заполнены содержимым "qwerty123" и надо добавить в конец массива еще элемент спустя некоторое... http://www.cyberforum.ru/cpp-beginners/thread1163948.html
Как сделать членом класса экземпляр этого же класса C++
class Operation { public: bool type; //true = operation, false = number char Operator; Operation L_Op; Operation R_Op; Operation() {}; };
Принудительный выход из цикла C++
Задача: пользователь вводит текст, если в тексте встречается запятая, вывести какая самая первая запятая по счету. вот мой код: #include <iostream> #include<string> using namespace std; void...
C++ OpenGL вращение фигур, нарисованных точками http://www.cyberforum.ru/cpp-beginners/thread1163924.html
Hi всем. Ломаю голову над задачей о вращении фигур, нарисованных точками. Обычные фигуры (триугольники, полигоны и т.д) , построенные по точкам в openGL я вращаю функцией glRotatef(angle, x, y, z); ...
C++ Реализация алгоритма приведения кривой к каноническому виду Помогите, прошу. Нужно написать програму для приведение кривой к каноническому виду. Алгоритм вроде нашел, но вот записать в код не могу. Помогите подробнее

Показать сообщение отдельно
Maxvik_Grunge
1 / 1 / 0
Регистрация: 10.03.2014
Сообщений: 30

Указатели.Строки и указатели - C++

02.05.2014, 13:11. Просмотров 404. Ответов 1
Метки (Все метки)

Вот условия ввода строки:Вводить и обрабатывать строки в цикле до тех пор пока первый символ не пробел
Условия обработки строки:
1.Вычислить кол-во гласных букв в строке(только с помощью указателей)
2.Если длина строки больше заданного пользователем числа, то отбросить первые символы, если длина строки меньше этого числа, то в ее начало добавить символы точка(только с помощью указателей)

Код того что я смог реализовать в какой то степени:
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#include <iostream>
#include <cstring>
using namespace std;
 
int main()
{
int const size = 80 ;
char tmp[size] ;
char* pTmp ;
while(true)
{
cout << "input line --> " ;
cin.getline( tmp,size ) ;
 
if ( isspace(tmp[0]) )
break ;
 
unsigned int num,i(0) ;
cout << "input num --> " ;
cin >> num ;
 
// выделение памяти через указатель
pTmp = new char [ (num>strlen (tmp)?num:strlen(tmp)) + 1 ] ;
 
// копирование в выделенный блок
strcpy_s(pTmp, strlen(tmp)+1, tmp) ;
cin.clear() ;
cin.ignore() ;
 
int sum(0) ;
 
char glas []= {'A','a','E','e','I','i','Y','y','U','u','O','o','\0'} ;
 
char *p(pTmp), *pGlas(glas);
 
// цикл вычисления кол-ва глассных в строке
while( *p )
{
while( *pGlas )
{
if( *p == *pGlas )
sum++;
pGlas++;
}
pGlas = glas;
p++;
}
 
p = pTmp;
 
unsigned int len(strlen(pTmp)) ;
cout << "strlen = " << len << endl ;
 
// при len > num отбросить первые символы
i=0 ;
if ( len > num )
{
while( *p )
{
*p = *(p + len - num);
p++;
}
}
 
//при len < num добавить символы точка до необхадимого, заданного размера
char t;
if ( len < num )
{
i = len - 1 ;
unsigned int j(num) ;
while(j)
{
*p = *(p+1);
p++;
pTmp[--j] = pTmp[i] ;
if( j < num - len )
pTmp[j] = '.' ;
i-- ;
}
}
 
 
pTmp[0]='\0' ;
cout <<"str = " ;
cout << pTmp << endl ;
cout <<"glas = " ;
cout << sum << endl ;
delete [] pTmp ;
 
}
return 0 ;
}
Проблема заключается во 2 пункте обработки строки,то есть Если длина строки меньше этого числа, то в ее начало добавить символы точка
И по возможности могли бы вы подсказать правильно ли реализовано все остальное,так как обрабатывать нужно только при помощи указателей,а меня постоянно тянет бегать по массиву
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru