【发布时间】:2017-06-04 14:44:25
【问题描述】:
我有一个句子“计算机科学”作为我的输入,我想分别打印计算机和科学。我用 C++ 编写了一个程序,但它只打印“计算机”。谁能帮我找出为什么它没有分别打印这两个词?
int main()
{
char string[]="Computer Science";
int l;
l=strlen(string);
char begin[l];
int i=0,ind=0;
while(string[i]!='\0')
{
begin[ind]=string[i];
if(string[i]==' ')
{
begin[ind]=NULL;
cout<<begin<<"\n";
ind=0;
//ind++;
i++;
}
else
{
ind++;
i++;
}
}
return 0;
}
【问题讨论】:
-
只有在输入中遇到空格字符时才会打印。
Science后面没有空格 -
@user4532954 现在编写一个只打印“Science”的程序。然后将两个程序合并为一个程序。:)
-
为什么不使用 C++,即
std::string和std::istringstream来做到这一点? -
您可以将您的条件更改为
if(string[i] == ' ' || i == l)。我认为这与 std::string s 配合得很好 -
我不明白为什么,如果你在最后的
if语句的两侧增加i,为什么不只放一个i++;语句after i> 完整的if语句代替?