这个程序应该在变量str_length中存储name的字符数(其中name <50个字符以"."结尾)我很困惑为什么这个代码只吐出第一个字符,这意味着它从循环中断开对于诸如"乔纳森"之类的名称,i = 0.它不应该通过字符串解析,直到它找到".",然后才从for循环中断开?
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
string name;
int str_length;
cout << "What's your name" << endl;
cin >> name;
for (int i = 0; i < 50; i++)
{
cout << name[i];
if (name[i] == '.')
str_length = i;
break;
}
cout << endl;
system("PAUSE");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
你有:
for (int i = 0; i < 50; i++)
{
cout << name[i];
if (name[i] == '.')
str_length = i;
break;
}
Run Code Online (Sandbox Code Playgroud)
实际上是:
for (int i = 0; i < 50; i++)
{
cout << name[i];
if (name[i] == '.')
{
str_length = i;
}
break;
}
Run Code Online (Sandbox Code Playgroud)
你要:
for (int i = 0; i < 50; i++)
{
cout << name[i];
if (name[i] == '.')
{
str_length = i;
break;
}
}
Run Code Online (Sandbox Code Playgroud)
你正在break每个循环结束.