输入一串字符,读取第一个单词

2016-12-02 12:52:32来源:网络收集作者:程序猿人点击

注意分2种情况,第一是一开始就是字符没有空格,第二就是刚开始就是空格,空格个数随机


#include
using namespace std;
void word(char *b);
void main()
{
char a[81];
puts("input your string:");
gets(a);
word(a);
puts(a);}
void word(char *b)
{
char *p1=b;
char *p2;
while(isspace(*p1)) //刚开始就是空格的处理
{
p1++;
}
p2=p1;
while(!isspace(*p2))//得到第一个单词,p2最后指向第一个单词后的空格
{
p2++;
}

*p2='/0';
while(p1!=(p2+1))
{
*b++=*p1++;
}
}当然这是看过答案过后自己写的,如果没有看答案,脑子里就是想if有空格,这些分情况来讨论,这种方法很low。


下面的标准答案:


#include
#include
void word(char *p);
int main(void)
{
char a[81];
puts("input your string:");
gets(a);
word(a);
puts(a);
return 0;
}
void word(char *p)
{
int begin,end;
for(begin=0; isspace( *(p+begin) ) ;begin++) continue;
for(end=begin; !isspace( *(p+end) ) ;end++) continue;
*(p+end) = '/0';
for(; *(p + begin) != '/0'; p++)
*p = *(p + begin);
*p = '/0';
}

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台