Проблема с strcat в С++

программирование с++

// содержимое скобок строки один поместить в другую строку
#include <iostream>
using namespace std;
#include <string>
int main()
{setlocale (0,"Rus");
char R[1001];
cin.getline(R,sizeof(R));
int d=strlen(R);

char E[1001]="";
int w,k=0;
for (w=0;w<d;w++)
{
if (R[w]=='(')
k=1;
if ((k==1)&&(R[w+1]!=')'))
strcat (E,R[w+1]);
if (R[w+1]==')')
k=0;
}
cout<<E<<endl;
return 1;}

Задание в том, что пользователь вводит значения строки, после чего в другую строку заносятся все значения первой, которые находятся в скобках. При запуске выдает следующее: error C2664: strcat: невозможно преобразовать параметр 2 из 'char' в 'const char *'. Никак не могу это исправить. И если есть варианты написания этой программы получше, пожалуйста напишите.

Примечание:
Перепробовал все, но все-равно программа не работает. Что предложил dmitry11111 и k_max ничего не меняет, а Jesterok - выдает просто набор символов, и функция strncat не то, поскольку мне надо заполнить пустую строку значениями которые находятся в скобках первой строки.
Ответы:
strcat(E, R[w+1]) -> strcat(E, R + w + 1);
P.S. надеюсь ты знаешь что делаешь
Потому что strcat работает с указателями... а E у вас не в куче, а в стеке. По сему переделайте все это, используя динамический массив:
Нужно просто использовать функцию strncat.
Можно сделать как предложил Jesterok, или просто заменить
char E[1001]="";;
на
char E[1001];
E[0] = '\0';


14 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.