问题描述
- C++语言定义二维字符串的问题
-
这个程序是要判断括号对是否匹配的,但是执行到scanf("%s",pour[i]);提示了错误,所以就简化了main函数,只把出现错误的写了出来,让大神看看是哪里出来问题。
错误提示如下。通过设置的断点表明,该错误是在执行了scanf("%s",pour[i]);之后,要往下执行的时候出现的,希望各位老师不吝赐教。
解决方案
1)pour[i]没有分配空间。
2)scanf 不能直接调用 string 变量。
for(int i=0;i<a;i++)
{
pour[i].resize(100);
scanf("%s",&pour[i][0]);
解决方案二:
贴完整的程序到codepad.org或者用</>
按钮。贴图怎么帮你
解决方案三:
用cin读取到string中。
解决方案四:
int main(void){
int a;
scanf("%d",&a);
string *result = new string[a];//记录判断结果为yes或者no
string *pour = new string[a];//记录初始输入的括号对
for(int i=0;i<a;i++)
{
scanf("%s",pour[i]);
if(pour[i][0] == ']' || pour[i][0] == ')')
{
result[i] = "No";
}
else
{
result[i] = "Yes";
}
}
时间: 2024-10-03 03:43:41