我需要逐个字符地读取一个字符串,以便对其进行一些控制。这种操作是否可行?我是否必须将其转换为一个字符数组?
我尝试使用string_to_control[i]
指向单个字符,然后增加i以移动,但似乎这样不起作用。
作为例子,我贴出了括号控制的部分代码。
bool Class::func(const string& cont){
const string *p = &cont;
int k = 0;
//control for parenthesis
while (p[k].compare('\0') != 0) {
if (p[k].compare("(") == 0) { ap++; };
if (p[k].compare(")") == 0) { ch++; };
k++;
};
//...
};
字符串已被成功复制,但是一旦尝试进行第一次比较就会抛出异常。
编辑:我想要拥有初始字符串 cont 的不同副本(并在它们上面操作,而不是直接在 cont 上操作),以便操纵它们(在代码的后续部分中,我需要验证某些单词是否处于正确的位置)。
if
,在第二个if
之前加上else
。_2_:没有理由将其作为类成员函数。改为自由函数即可。 - Ted Lyngmoc_str()
将std::string
转换为 C 字符串?请阅读此链接:https://dev59.com/g2s05IYBdhLWcg3wJurp - Soumya Kanti