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

E2034 Cannot convert 'char' to 'char *' - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 28, средняя оценка - 4.96
Wital
15 / 15 / 1
Регистрация: 14.10.2009
Сообщений: 82
09.05.2010, 12:57     E2034 Cannot convert 'char' to 'char *' #1
Добрый день всем! Помогите плз исправить ошибку. Не понимаю чего она происходит. Вообщем, нужно все елементы строки text запихнуть в двумерный массив. Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
char* st=text.c_str();
       char** matr;
        int iter=0;
        matr=new char*[col];
        for (int i=0; i<col; i++)
                matr[i]=new char[row];
        while (iter<text.Length())
        {
        //запись по столбцам
        for (int j=0; j<row; j++)
                for (int i=0; i<col; i++)
                        {
                                [B]matr[i,j]=st[iter];[/B] //здесь вылает ошибку
                                iter++;
                        }
       //считывание по строкам
        for (int i=0; i<col; i++)
                for (int j=0; j<row; j++)
                 {
                 temp+=matr[i][j];
                 }
        }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Crudelis
Шаровик затейник
 Аватар для Crudelis
667 / 409 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
09.05.2010, 14:32     E2034 Cannot convert 'char' to 'char *' #2
C++
1
[B]strcpy(matr[i,j],st[iter]);[/B]
строки нельзя приравнивать и давать таким методом значения, попробуйте strcpy
ISergey
Maniac
Эксперт С++
 Аватар для ISergey
1331 / 864 / 50
Регистрация: 02.01.2009
Сообщений: 2,622
Записей в блоге: 1
09.05.2010, 14:51     E2034 Cannot convert 'char' to 'char *' #3
Цитата Сообщение от Crudelis Посмотреть сообщение
строки нельзя приравнивать и давать таким методом значения, попробуйте strcpy
Символы можно копировать..
Я так понял что здесь небольшая ошибка..
Код
matr[i,j]=st[iter];
Переделайте так
Код
matr[i][j]=st[iter];
Wital
15 / 15 / 1
Регистрация: 14.10.2009
Сообщений: 82
09.05.2010, 15:07  [ТС]     E2034 Cannot convert 'char' to 'char *' #4
точно))) спасиб вам большое!
Crudelis
Шаровик затейник
 Аватар для Crudelis
667 / 409 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
09.05.2010, 15:32     E2034 Cannot convert 'char' to 'char *' #5
точно)))))) а слона то я и не заметил) синтаксис не правильный был
Wital
15 / 15 / 1
Регистрация: 14.10.2009
Сообщений: 82
09.05.2010, 15:43  [ТС]     E2034 Cannot convert 'char' to 'char *' #6
и еще вопросик. как удалить концевые символы в строке. Например в строке "фываыоларорывъъъъъъъъ" нужно удалить все "ъ" в конце строки, т.е. на выходе получить "фываыоларорыв". в .Net есть функция TrimEnd('символ'). В билдере есть что нить подобное?
Crudelis
Шаровик затейник
 Аватар для Crudelis
667 / 409 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
09.05.2010, 16:34     E2034 Cannot convert 'char' to 'char *' #7
C++
1
2
3
4
5
6
7
char str1[100]="фываыоларорывъъъъъъъъ";
int t=strlen(str1);
for(int i=0;i<t;i++)
{
if(str1[i]!="ъ")
cout<<str1[i];
}
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
21.05.2010, 21:54     E2034 Cannot convert 'char' to 'char *' #8
Если все символы отбросить после определенного символа, то можно так
C++
1
2
3
4
5
6
7
8
9
10
void Trim(char *str, char sym)
{
   char *ptr = str;
   for (; *ptr != '\0'; ptr++)
      if (*ptr == sym)
      {
         *ptr = '\0';
         return;
      }
}
System16v
 Аватар для System16v
3 / 3 / 0
Регистрация: 19.02.2014
Сообщений: 115
21.04.2015, 15:53     E2034 Cannot convert 'char' to 'char *' #9
Подскажите пожалуйста,что не так?Не могу врубиться . Пытался сделать массив с указателями на функции. По очереди должна вызываться каждая функция,в которой в массиве рандомно выбирается слово и присваивается другому массиву. Выдает ошибки -
[C++ Error] Unit1.cpp(42): E2034 Cannot convert 'char *' to 'char'
[C++ Warning] Unit1.cpp(44): W8004 'ar' is assigned a value that is never used
[C++ Warning] Unit1.cpp(44): W8004 's' is assigned a value that is never used
[C++ Error] Unit1.cpp(50): E2034 Cannot convert 'char *' to 'char' и т.д. Где ошибка?
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
//---------------------------------------------------------------------------
#include <vcl.h>
#include <iostream>
#include <math>
#include <cstdlib>
#include <iomanip>
 
using namespace std;
 
void article(char *);
void noun(char *);
void verb(char *);
void preposition(char *);
 
int l=0;
 
int main()
{
 srand(time(0));
 void (*f[4])(char *)={article,noun,verb,preposition};
 char *array[2000];
 int t=0,z=0;
 while(t!=4)
 {
 (*f[t])(*array);
  t++;
  if(t==4)
  {
   (*f[z])(*array);
   z++;
   (*f[z])(*array);
  }
 }
 system("pause");
 return 0;
}
void article(char *w1)
{
  int s=0;
  char *ar[]={"the","a","one","some","any"};
  s=rand()%5;
  w1[l]=ar[s];
  l++;
}
void noun(char *w2)
{
  int s1=0;
  char *ar1[]={"boy","girl","dog","town","car"};
  s1=rand()%5;
  w2[l]=ar1[s1];
  l++;
}
void verb(char *w3)
{
  int s2=0;
  char *ar2[]={"drove","jumped","ran","walked","skipped"};
  s2=rand()%5;
  w3[l]=ar2[s2];
}
void preposition(char *w4)
{
  int s3=0;
  char *ar3[]={"to","from","over","on"};
  s3=rand()%4;
  w4[l]=ar3[s3];
}
nmcf
4281 / 3712 / 1247
Регистрация: 14.04.2014
Сообщений: 14,516
21.04.2015, 16:55     E2034 Cannot convert 'char' to 'char *' #10
Ты путаешь типы. ar и ar1 - двумерные массивы, нужно второй индекс указать. Это формально.
System16v
 Аватар для System16v
3 / 3 / 0
Регистрация: 19.02.2014
Сообщений: 115
21.04.2015, 17:11     E2034 Cannot convert 'char' to 'char *' #11
nmcf, а почему они двумерные?Мне казалось что при объявлении char *ar[]={"ar","ar1"} создаются 2 указателя на одномерные массивы. Так как правильно сделать,что оно работало?А именно при вызове функции, выбиралось любое слово и присваивалось новому массиву?Просто если объявляю например вот так
C++
1
w4[l]=*ar3[s3];
Программа запускается,но там вместо слов записываются 1ые символы слов.
nmcf
4281 / 3712 / 1247
Регистрация: 14.04.2014
Сообщений: 14,516
21.04.2015, 17:15     E2034 Cannot convert 'char' to 'char *' #12
C++
1
2
3
4
5
6
void article(char *w1)
{
  char *ar[]={"the","a","one","some","any"};
  strcpy(w1, ar[rand()%5]);
  l++;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.04.2015, 17:27     E2034 Cannot convert 'char' to 'char *'
Еще ссылки по теме:

C++ C++ ошибка "Cannot convert 'char *' to char"
C++ Поворот массива на 90 градусов (cannot convert form char to char*)
C++ Convert string to char

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

Или воспользуйтесь поиском по форуму:
System16v
 Аватар для System16v
3 / 3 / 0
Регистрация: 19.02.2014
Сообщений: 115
21.04.2015, 17:27     E2034 Cannot convert 'char' to 'char *' #13
nmcf, блин точно.С головы вылетело .Спасибо. А можешь еще подсказать.Копировать копирует.Но он почему-то не добавляет к существующей строчке,а заменяет предыдущее на новое.Из-за чего?

З.ы. А вроде разобрался,надо strcat использовать кажется
Yandex
Объявления
21.04.2015, 17:27     E2034 Cannot convert 'char' to 'char *'
Ответ Создать тему
Опции темы

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