Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
5 / 5 / 0
Регистрация: 06.06.2009
Сообщений: 24
1

Описать функцию, которая изменяет заданную строку следующим образом

07.06.2009, 15:19. Просмотров 817. Ответов 6
Метки нет (Все метки)

задача:Описать функцию, которая изменяет заданную строку следующим образом: сначала записывает все элементы с четными индексами, а затем все элементы с нечетными индексами ( с сохранением их относительного порядка в каждой группе). Например, abcdefgh => acegbdfh, vwxyz => vxzwy.
компилятор:borland c++
вот ошибки:

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
#include <iostream>
using namespace std;//компилятор пишет declaration syntax error
 
int main(int argc, char *argv[]) {
 
    cout << "\nLine: ";
    const int lineLength = 256;
    char lineBuffer[lineLength] = "\0";
    cin >> lineBuffer;
 
    char resultBuffer[lineLength] = "\0";
 
    int j = 0;
    for (int i = 0; i < lineLength; i+=2) {
        if (lineBuffer[i] != '\0')  
            resultBuffer[j++] = lineBuffer[i];
        else break;
    }
    for (int i = 1; i < lineLength; i+=2) {//multiple declaration for 'i'
        if (lineBuffer[i] != '\0') 
            resultBuffer[j++] = lineBuffer[i];
        else break;
    }
 
    cout << "\nResult: " << resultBuffer << '\n';
    return 0;
}//Parameter 'argc' in never used
если можно обьясните или подкариктируйте
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.06.2009, 15:19
Ответы с готовыми решениями:

Написать функцию которая будет умножать любую строку на уже заданную матрицу
Написать функцию которая будет умножать любую строку на уже заданную матрицу

Описать функцию, которая формирует текстовую строку
Дан текст в файле F1 в виде: ИМЯ ОТЧЕСТВО ФАМИЛИЯ_1 ИМЯ ОТЧЕСТВО ФАМИЛИЯ_2 ... Описать функцию,...

Описать функцию PoslSu(t), которая выводит на печать последнюю строку непустого текстового файла
Описать функцию PoslSu(t), которая выводит на печать последнюю строку непустого текстового файла t...

Составить программу, которая превращает неупорядоченные массивы В [16] и С [20] следующим образом
Составить программу, которая превращает неупорядоченные массивы В и С следующим образом: меняет...

6
Maniac
Эксперт С++
1445 / 947 / 158
Регистрация: 02.01.2009
Сообщений: 2,813
Записей в блоге: 1
07.06.2009, 15:31 2
Вообще код рабочий. попробуй так:
это
C++
1
2
3
4
#include <iostream>
using namespace std;//компилятор пишет declaration syntax error
 
int main(int argc, char *argv[]) {
замени на
C++
1
2
3
#include <iostream.h>
 
int main() {
Добавлено через 1 минуту 39 секунд
и здесь
C++
1
for (int i = 1; i < lineLength; i+=2) {//multiple declaration for 'i'
попробуй так
C++
1
for ( i = 1; i < lineLength; i+=2) {
1
5 / 5 / 0
Регистрация: 06.06.2009
Сообщений: 24
07.06.2009, 15:34  [ТС] 3
все зароботало спасибо
0
5 / 5 / 0
Регистрация: 06.06.2009
Сообщений: 24
11.06.2009, 08:22  [ТС] 4
народ помогите написать эту программу через указатели.
0
Maniac
Эксперт С++
1445 / 947 / 158
Регистрация: 02.01.2009
Сообщений: 2,813
Записей в блоге: 1
11.06.2009, 10:35 5
Так
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
#include <iostream.h>
//#include <iostream>
//using namespace std;
 
int main() 
{
 
    cout << "\nLine: ";
    const int lineLength = 256;
    char lineBuffer[lineLength] = "\0";
 
 
    char resultBuffer[lineLength] = "\0";
 
    const char *p = lineBuffer;
    char *pr = resultBuffer;
 
    cin >> lineBuffer;
 
    for (; p; p += 2) 
    {
        if (*p != '\0')      
            *(pr)++ = *p;
        else break;
    }
 
    p = lineBuffer;
    ++p;
    for (; p; p+=2) 
    {
        if (*p != '\0') 
            *pr++ = *p;
        else break;
    }
 
    cout << "\nResult: " << resultBuffer << '\n';
    return 0;
}
0
5 / 5 / 0
Регистрация: 06.06.2009
Сообщений: 24
11.06.2009, 14:31  [ТС] 6
ISergey, это понятно ,но массивов типа:
char lineBuffer[lineLength] = "\0";
char resultBuffer[lineLength] = "\0";
не должно быть.должны быть только указатели.
0
Maniac
Эксперт С++
1445 / 947 / 158
Регистрация: 02.01.2009
Сообщений: 2,813
Записей в блоге: 1
11.06.2009, 15:02 7
Так!
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
#include <iostream.h>
//using namespace std;
 
int main() 
{
 
    cout << "\nLine: ";
    const int lineLength = 256;
 
    char *lineBuffer   = new char[lineLength];   memset(lineBuffer,0,lineLength);
    char *resultBuffer = new char[lineLength];   memset(resultBuffer,0,lineLength);
    
    const char *p = lineBuffer;
    char *pr = resultBuffer;
 
    cin >> lineBuffer;
 
    for (; p; p += 2) 
    {
        if (*p != '\0')      
            *pr++ = *p;
        else break;
    }
 
    p = lineBuffer;
    ++p;
    for (; p; p+=2) 
    {
        if (*p != '\0') 
            *pr++ = *p;
        else break;
    }
 
    cout << "\nResult: " << resultBuffer << '\n';
 
    delete[] lineBuffer;
    delete[] resultBuffer;
    return 0;
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.06.2009, 15:02

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Ввести две строки символов A и B. Создать строку С следующим образом С1 = A1, C2 = В1, С3 = А2, С4 = В2
Ввести две строки символов A и B. Создать строку С следующим образом С1 = A1, C2 = В1, С3 = А2, С4...

а) Создать шаблонную функцию, изменяющую попарно элементы массива следующим образом
а) Создать шаблонную функцию, изменяющую попарно элементы массива следующим образом: ...

Дана прямоугольная матрица А размером N × M. Составить программу, которая преобразует матрицу следующим образом: поэлементно вычитает первый столбец
Дана прямоугольная матрица А размером N × M. Составить программу, которая преобразует матрицу...

Дано время, описать следующим образом:
Дано время, описать следующим образом: type time=record h:0..23;m.s:0..59 end; Описать...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.