C语言求改错

mn76a84f 2012-05-10 12:30:55
程序D19.c的功能是将inBuf中字符串拆分成一个个的单词。
#include<stdio.h>

#define Yes 1
#define No 0

char *getStrFromBuf(char *Buf, char *Str, char *divStr);
int charInStr(char *Str, char t);

int main(void)
{
char inBuf[100] = ">how old are/ you?", *point, oneWord[20];
char divChar[] = " ;?!,.>/\\";

point = inBuf;
while (*point)
{
/*********Found************/
getStrFromBuf(point, oneWord, divChar);
if (*oneWord)
{
puts(oneWord);
}
}

return 0;
}

int charInStr(char *Str, char t)
{
for (; *Str; Str++)
{
/*********Found************/
if (*Str == *t)
{
/*********Found************/
return No;
}
}
/*********Found************/
return Yes;
}


char *getStrFromBuf(char *Buf, char *Str, char *divStr)
{
for (; *Buf; Buf++)
{
if (charInStr(divStr, *Buf) == No)
{
break;
}

}

for (; *Buf; Buf++)
{
if (charInStr(divStr, *Buf) == Yes)
{
break;
}
/*********Found************/
Str = *Buf;
Str++;
}
/*********Found************/
*Str = '0';

/*********Found************/
return ;
}
...全文
159 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Fangzhen 2012-05-12
  • 打赏
  • 举报
回复
使用strtok函数应该可以的
hen_hao_ji 2012-05-10
  • 打赏
  • 举报
回复

#include<stdio.h>

#define Yes 1
#define No 0

int getStrFromBuf(char *Buf, char *Str, char *divStr);
int charInStr(char *Str, char t);
int main(void)
{
char inBuf[100] = ">how old are/ you?";
char *point, oneWord[20];

char divChar[] = " ;?!,.>/\\";

point = inBuf;
while (*point)
{
/*********Found************/
point += getStrFromBuf(point, oneWord, divChar);

if (*oneWord)
{
puts(oneWord);
}
}

return 0;
}
int charInStr(char *Str, char t)
{
for (; *Str; Str++)
{
/*********Found************/
if (*Str == t)
{
/*********Found************/
return No;
}
}
/*********Found************/
return Yes;
}
int getStrFromBuf(char *Buf, char *Str, char *divStr)
{
int len = 0;
for (; *Buf; Buf++)
{
if (charInStr(divStr, *Buf) == Yes)
{

break;

}
++len;

}
for (; *Buf; Buf++)
{
if (charInStr(divStr, *Buf) == No)
{
break;
}
/*********Found************/
*Str = *Buf;
Str++;
++len;
}
/*********Found************/
*Str = '\0';

/*********Found************/
return len;
}
W170532934 2012-05-10
  • 打赏
  • 举报
回复
while (*point)//导致死循环
if (*Str == *t) //t为char *t做什么??比较什么呢?

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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