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

Ошибка с конвентированием - C++

Восстановить пароль Регистрация
 
kostiapp
-43 / 5 / 0
Регистрация: 12.10.2012
Сообщений: 76
11.04.2013, 10:58     Ошибка с конвентированием #1
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
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include <math.h>
#include <string.h>
 
void c();
void g();
//основная функция
void work(char* str);
//функция добавления пробела
char* spaceAdd(char* str);
char* turn(char str);
void main()
{
c();
char szString[100];
char *szStringNew;
 
    cout<<"Vvedite text :\n";
    cin.getline(szString, 99);
    szStringNew=spaceAdd(szString);
    work(szStringNew);
    
g();
delete []szStringNew;
}
 
char *spaceAdd(char* str){
char *szString=new char[104];
szString[0]=' ';
int end=0;
    for(int i=1;i<=strlen(str);i++) {
    szString[i]=str[i-1];
    end=i+1;
    }
szString[end]=' ';
szString[end+1]='\0';
return szString;
}
 
void work(char* str){
char* string;
int cycle=0;
    for(int i=0; i<strlen(str); i++) {
    if(str[i]==' '){
    cycle++;
    char say[100];
        for(int j=i+1,step=0;str[j]!=' ';j++,step++){
        say[step]=str[j];
        }
    say[step]='\0';
    if(cycle%2==0) {
    string=strcat(string,turn(say));
    }
        }
    }
    cout<<string;
 
  
    }
 
 
char* turn(char str) {
int len=strlen(str)+1;
char* string=new char[len];
string[0]=' ';
    for(int i=1,j=len;i<len;i++,j--) {
    string[i]=str[j];
    }
    return string;
}
 
 
 
 
 
 
void c(){clrscr();}
void g(){getch();}
Просто устал уже...Cannon convert int to char* , я не где не сравниваю инт с чаром да и вообще они ни где не взаимодействуют . Проблема в функции turn.

Задание(консольное) :
Отредактировать заданное предложение удаляя из него слова с нечетными номерами и переворачивая с четными .
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.04.2013, 10:58     Ошибка с конвентированием
Посмотрите здесь:

C++ Глупая ошибка, но до сих пор неисправленная ошибка: ";"

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11811 / 6790 / 767
Регистрация: 27.09.2012
Сообщений: 16,840
Записей в блоге: 2
Завершенные тесты: 1
11.04.2013, 11:01     Ошибка с конвентированием #2
Цитата Сообщение от kostiapp Посмотреть сообщение
Cannon convert int to char*
На какой строчке выдает то?
kostiapp
-43 / 5 / 0
Регистрация: 12.10.2012
Сообщений: 76
11.04.2013, 11:06  [ТС]     Ошибка с конвентированием #3
Цитата Сообщение от Croessmah Посмотреть сообщение
На какой строчке выдает то?
На функции turn. Строчка без раницы , я в борланде делаю , он не определяет нормально .
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11811 / 6790 / 767
Регистрация: 27.09.2012
Сообщений: 16,840
Записей в блоге: 2
Завершенные тесты: 1
11.04.2013, 11:11     Ошибка с конвентированием #4
Принимает char
C++
1
char* turn(char str)
А работаете с str как с массивом.
C++
1
char* turn(char * str)
kostiapp
-43 / 5 / 0
Регистрация: 12.10.2012
Сообщений: 76
11.04.2013, 11:31  [ТС]     Ошибка с конвентированием #5
Цитата Сообщение от Croessmah Посмотреть сообщение
Принимает char
C++
1
char* turn(char str)
А работаете с str как с массивом.
C++
1
char* turn(char * str)
Строковый тип данных это массив символов. Это не первая программа , где у меня работает со строкой
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11811 / 6790 / 767
Регистрация: 27.09.2012
Сообщений: 16,840
Записей в блоге: 2
Завершенные тесты: 1
11.04.2013, 11:36     Ошибка с конвентированием #6
Цитата Сообщение от kostiapp Посмотреть сообщение
Строковый тип данных это массив символов.
кхм... допустим....
но зачем тогда вместо указателя на массив делать аргументом 1 char, если нужна строка?
kostiapp
-43 / 5 / 0
Регистрация: 12.10.2012
Сообщений: 76
11.04.2013, 12:19  [ТС]     Ошибка с конвентированием #7
Цитата Сообщение от Croessmah Посмотреть сообщение
кхм... допустим....
но зачем тогда вместо указателя на массив делать аргументом 1 char, если нужна строка?
Не понял о чем ты
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11811 / 6790 / 767
Регистрация: 27.09.2012
Сообщений: 16,840
Записей в блоге: 2
Завершенные тесты: 1
11.04.2013, 12:26     Ошибка с конвентированием #8
C++
1
2
3
4
5
6
7
8
9
10
11
char* turn(char * str);//УКАЗАТЕЛЬ!!!
//...
char* turn(char * str) {//УКАЗАТЕЛЬ!!!
int len=strlen(str)+1;
char* string=new char[len];
string[0]=' ';
    for(int i=1,j=len;i<len;i++,j--) {
    string[i]=str[j];
    }
    return string;
}
Добавлено через 10 секунд
Да и всё равно ошибки будут.

Добавлено через 59 секунд
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void work(char* str){
char* string;
int cycle=0;
    for(int i=0; i<strlen(str); i++) {
    if(str[i]==' '){
    cycle++;
    char say[100];
        for(int j=i+1,step=0;str[j]!=' ';j++,step++){
        say[step]=str[j];
        }
    say[step]='\0';
    if(cycle%2==0) {
    string=strcat(string,turn(say));
    }
        }
    }
    cout<<string;
 
  
    }
Что такое step? Где объявлено и инициализировано?
И под строку кто будет память выделять?
Tulosba
11.04.2013, 13:58
  #9

Не по теме:

Цитата Сообщение от kostiapp Посмотреть сообщение
я в борланде делаю , он не определяет нормально .
Истину глаголит.
Цитата Сообщение от Croessmah Посмотреть сообщение
И под строку кто будет память выделять?
Цитата Сообщение от kostiapp Посмотреть сообщение
Это не первая программа , где у меня работает со строкой
Что Вы тут глупости всякие спрашиваете

kostiapp
-43 / 5 / 0
Регистрация: 12.10.2012
Сообщений: 76
12.04.2013, 09:28  [ТС]     Ошибка с конвентированием #10
степ в цикле обьявляется
Хм...а используется вне цикла ) ужс невнимательный )

Добавлено через 5 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void work(char* str){
char* string;
int cycle=0;
int step=0;
    for(int i=0; i<strlen(str); i++) {
    step=0;
    if(str[i]==' '){
    cycle++;
    char say[100];
        for(int j=i+1;str[j]!=' ';j++,step++){
        say[step]=str[j];
        }
    say[step]='\0';
    if(cycle%2==0) {
    string=strcat(string,turn(say));
    }
        }
    }
    cout<<string;
 
    }
Все равно не работает
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11811 / 6790 / 767
Регистрация: 27.09.2012
Сообщений: 16,840
Записей в блоге: 2
Завершенные тесты: 1
12.04.2013, 09:52     Ошибка с конвентированием #11
Вопрос с выделением памяти под строку открыт
kostiapp
-43 / 5 / 0
Регистрация: 12.10.2012
Сообщений: 76
12.04.2013, 12:49  [ТС]     Ошибка с конвентированием #12
Цитата Сообщение от Croessmah Посмотреть сообщение
Вопрос с выделением памяти под строку открыт
Борланд не ругается если делит отсутствует ) не из-за него
Tulosba
:)
Эксперт C++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
12.04.2013, 12:53     Ошибка с конвентированием #13
Цитата Сообщение от kostiapp Посмотреть сообщение
Борланд не ругается если делит отсутствует )
а кто-то ругается? (препод не в счет)
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11811 / 6790 / 767
Регистрация: 27.09.2012
Сообщений: 16,840
Записей в блоге: 2
Завершенные тесты: 1
12.04.2013, 12:54     Ошибка с конвентированием #14
Ну раз не из-за памяти, то решайте сами свою проблему, мы ж здесь ничего не знаем



P.S. Я бы все-таки прислушался к советам.
kostiapp
-43 / 5 / 0
Регистрация: 12.10.2012
Сообщений: 76
12.04.2013, 20:57  [ТС]     Ошибка с конвентированием #15
Цитата Сообщение от Croessmah Посмотреть сообщение
Ну раз не из-за памяти, то решайте сами свою проблему, мы ж здесь ничего не знаем



P.S. Я бы все-таки прислушался к советам.
Разве вы можете за всех писать ?
Если отсутствует делит программа работает отлично , можете у себя проверить написав мини приложение .

В чем именно ошибка я написал выше , оно пытается инт конвертировать к строковому типу где-то , не могу понять где.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11811 / 6790 / 767
Регистрация: 27.09.2012
Сообщений: 16,840
Записей в блоге: 2
Завершенные тесты: 1
12.04.2013, 21:23     Ошибка с конвентированием #16
Цитата Сообщение от kostiapp Посмотреть сообщение
В чем именно ошибка я написал выше
Я тоже написал

Цитата Сообщение от Croessmah Посмотреть сообщение
И под строку кто будет память выделять?
причем тут delete

Добавлено через 1 минуту
Цитата Сообщение от kostiapp Посмотреть сообщение
оно пытается инт конвертировать к строковому типу где-то , не могу понять где.
И на этот вопрос ответ уже дан:
Цитата Сообщение от Croessmah Посмотреть сообщение
Принимает char
Цитата Сообщение от Croessmah Посмотреть сообщение
А работаете с str как с массивом.
Yandex
Объявления
12.04.2013, 21:23     Ошибка с конвентированием
Ответ Создать тему
Опции темы

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