'Using pointers to find positions of characters between unbalances parentheses

I am given a C++ programming problem: In a string I need to find wether or not there are balanced parentheses. If not, using pointers I should find position of the characters between unclosed parentheses (between second opening and nearest closing). The problem statement is a bit confusing, I know. I think it should work somehow like that:

Input #1:

((aba)aaab)

Output:

OK.

Input #2:

(aa(a)ab

Output:

Parentheses not balanced: between characters 1 and 6.

Code below solves part of problem with the closed parentheses check and also there is a structure to keep the address of the opening parenteses. I am not sure how exactly to use pointers for that purposes, some attempts did not give any result, so I need some help here.

#include<iostream>
#include<string>
#include<stack>

using namespace std;

struct br_data{
    char br_t;
    char *cptr;     //store the address of the opening parenthesis
};

int main (){
    string input;
    int addr;
    br_data br;
    getline(cin, input);

    stack<br_data> braces;
    char *a = input[0];  
    auto init_char = static_cast<void*>(&a); //store the address of the first character in the input string
    cout << static_cast<void*>(&a) << endl;  //gives the address in memory
    for(auto c: input) {
        if (c == '(') {
            br.br_t = c;
            br.cptr = &c;   //storing the address of the first parenhesis
            braces.push(br);
        } else if (c == ')' ) {
            if (braces.empty())
                cout << "This line does not contain unclosed parentheses\n";
            if (!braces.empty())
                braces.pop();
        }
    }
    if (!braces.empty()){
        //int addr = br.cptr;
        cout << "This line does not contain unclosed parentheses\n";
        //int pos = (&br.cptr) - (&a); //how to calculate the position??
        cout << "Position of the second opening parenthis is " << () << endl;
        //cout << "Position of the nearest closing parenthis is " << -how?? (static_cast<void*>(&br.cptr)) << endl;
    }
    if (braces.empty()){
        cout << "Parentheses are balanced in this line\n";
    }

    return 0;
}


Solution 1:[1]

#include <iostream>

using namespace std;
int main(){
    char str[]="Hello Programming";
    char *ptr;
    char ch;
    char s;
    s='n';
    
    
   ptr=str;
   cout<<"To be found Character"<<endl;
   cin>>ch;
   
   while(*ptr++ != '\0')
   if(*ptr==ch)
   s='y';
   
   if (s=='y')
   cout<<"FOUND";
   
   else 
   cout<<"not found";``
   return 0;
    
}

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Abdullah Ishaq