'查单词的个数'请帮忙调试一下

来源:百度知道 编辑:UC知道 时间:2024/05/27 14:46:16
#include<iostream.h>
void main()
{
char string[81];
int i,num=0,word=0;
char c;
cin>>string;
for(i=0;(c=string[i]!='\0');i++)
if(c==' ')word=0;
else if(word==0)
{
word=1;
num++;
}
cout<<num;
}

你可以这样写 这样该考虑的基本考虑到了
#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

void main()
{
char string[81] = {0};
int i,num=0,word=0;
char c;
int PreFlg = 0;

cin.getline(string, 80);
cout << string<<endl;
for(i=0; i < strlen(string) ;i++)
{
if((string[i]==' ') && PreFlg != 1)
{
num++;
PreFlg = 1;
}
else if((string[i]!=' ') && PreFlg == 1)
{
PreFlg = 0;
}
}
while( strlen(string)==i && 1 == PreFlg )
{
i--;
num--;
}
cout<<++num;
}

你的问题是 cin>>string; 认为接受到空格就结束了 另外计算单词个数的方法也不对

#include<iostream.h>
void main()
{
char string[81];
int i,num=0,word=0;
char c;
cin.getline(string,80);
//cin>>string;只能接受空格以前的字符串,也就是只接受一个单词