【发布时间】:2018-05-31 05:19:52
【问题描述】:
代码是在运行时输入字符串,但代码接受的字符串比提到的大小 n 小一?哪里出错了?
假设 n=3,但循环只运行了两次,即 n-1 次,因此只有两个字符串作为输入
int main(){
int n;
cin>>n;
char str[n][100];
for(int i=0;i<n;i++)
{
char c;
int j=0;
while((c=getchar())!='\n')
{
str[i][j++] = c;
}
str[i][j] ='\0';
}
}
【问题讨论】:
-
现在是learn how to debug your programs的好时机。
-
@Someprogrammerdude 编译器没有显示任何警告或错误
-
@SrjSunny 您遇到的实际问题是什么?这个问题有点令人困惑。代码乍一看似乎是正确的。
-
@pepperjack 当我输入 n=3 的大小时,循环仅运行 2 次,因此只占用两个字符串。我想知道为什么?
-
@pepperjack 请在您的编译器中尝试一次
标签: c++ arrays string c++11 for-loop