大家帮忙看看错在那里

cnkina 2006-08-05 10:00:39
#include <iostream.h>
#include <ctype.h>
#include <string.h>
void main()
{ char line[81],dict[81][10],word[10],*ptr,*tt;
int i=0;static n=0;
cout<<"input a string:"<<endl;
cin.getline(line,81);
int len=strlen(line);
ptr=line;
for (i=0;i<len;i++)
{ if(!isspace(*ptr)){word[i]=(*ptr);ptr++;}
else{ tt=ptr;
for (int m=0;m<len;m++)
{ if(!isspace(*tt)) break;
else tt++;}

ptr=tt;
strcpy(dict[n],word);
n++;
}
}
cout<<"-----------------------------------------------------"<<endl;
for (int l=0;l<n;l++)
cout<<dict[l]<<endl;
}

我是想从输入的一句话里,找出每一个单词
为什么我输出的时候没显示呢?
...全文
176 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
cnkina 2006-08-09
  • 打赏
  • 举报
回复
谢谢大家帮忙了
a_b_c_abc8 2006-08-06
  • 打赏
  • 举报
回复

#include <iostream.h>
#include <ctype.h>
#include <string.h>
void main()
{
char line[81],dict[81][10],*ptr;//,word[10],*tt;
int i=0;
static int n=0;
cout<<"input a string:"<<endl;
cin.getline(line,81);
int len=strlen(line);
ptr=line;
for (i=0;i<len;i++)
{
if(isspace(ptr[i]))
{
//word[i]=(*ptr);这是想干嘛,word最大下标只能到9
//ptr++;
}
else
{
//tt=ptr;
//for (int m=0;m<len;m++)
//{
// if(!isspace(*tt)) break;
// else tt++;
//}

//ptr=tt;
//strcpy(dict[n],word);
int m=0;
while(!isspace(ptr[i]) && ptr[i]!=0)
{
dict[n][m++]=ptr[i++];
}
dict[n][m]='\0';
n++;
}
}
cout<<"-----------------------------------------------------"<<endl;

for (int l=0;l<n;l++)
cout<<dict[l]<<endl;
}
butters 2006-08-06
  • 打赏
  • 举报
回复
#include <cstdlib>
#include <iostream>

using namespace std;

#include <ctype.h>
#include <string>
int main(int argc, char *argv[])
{
char line[81],word[81],*ptr;
int i=0;
cout<<"input a string:"<<endl;
cin.getline(line,81);
int len=strlen(line);//输入长度
ptr=line;//字符串指针
for (i=0;i<len;i++)
{
if(!isspace(*ptr))
{
word[i]=(*ptr);
ptr++;
}
else
{
word[i]='\n';
++ptr;
}


}

cout<<"-----------------------------------------------------"<<endl;
for (int l=0;l<len;l++)
cout<<word[l];
system("PAUSE");
return EXIT_SUCCESS;
}
vigorous001 2006-08-06
  • 打赏
  • 举报
回复
#include <iostream.h>
#include <ctype.h>
#include <string.h>
void main()
{
char line[81],dict[81][10],word[10],*ptr,*tt;
int i, n=0;
int k=0;
cout<<"input a string:"<<endl;
cin.getline(line,81);
int len=strlen(line);
ptr=line;
for (i=0;i<len;i++)
{
if(!isspace(*ptr))
{
word[n]=(*ptr);
ptr++;
n++;
}
else
{
tt=ptr;
for (int m=0;m<len;m++)
{
if(!isspace(*tt)) break;
else tt++;
}
ptr=tt;
word[n]=NULL;
strcpy(dict[k],word);
n=0;k++;

}
}
strcpy(dict[k],word);

cout<<"-----------------------------------------------------"<<endl;
for (int l=0;l<k;l++)
cout<<dict[l]<<endl;

cout<<word;

}
property1 2006-08-05
  • 打赏
  • 举报
回复
格式太差, 很难有人愿意看你的 代码。
OpenHero 2006-08-05
  • 打赏
  • 举报
回复
逻辑错误了word的位置已经指向空的地方

64,644

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧