| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1255 人关注过本帖
标题:菜鸟求助一个自定义函数
只看楼主 加入收藏
jpsor
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2004-11-24
收藏
 问题点数:0 回复次数:15 
菜鸟求助一个自定义函数

一个函数void printsentense(constant char *line)*line是一个中文自然段,要求将*line中的汉字按句输出。若遇到中文标点“。”“?”“!”即换行输出。

题目是简单了点,不过念在我是菜鸟还请各位大虾多多相助!谢谢了

[此贴子已经被作者于2004-11-24 22:10:01编辑过]

搜索更多相关主题的帖子: 函数 定义 
2004-11-24 21:18
jpsor
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2004-11-24
收藏
得分:0 

晕 没人愿意帮个小忙吗?

2004-11-25 20:23
jpsor
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2004-11-24
收藏
得分:0 
顺便文一下如何在编程时输入汉字
2004-11-25 20:46
时空之蕊
Rank: 2
等 级:新手上路
威 望:3
帖 子:691
专家分:0
注 册:2004-10-31
收藏
得分:0 
我可以写过几天啊!!我正在写一个小游戏没有时间!如果你自己写遇到困难可以找我!!下周前我写好!

我渴望掌控时空的核心——用最先进的技术,打造无比美丽的世界!
2004-11-25 23:14
jpsor
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2004-11-24
收藏
得分:0 

老大什么意思啊!抽点空给个答案啊

2004-11-26 18:59
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
这个问题很简单,只要在!。?后加输一个'\n'就行了,汉字是双字节编码,ASCII是单字节编码,所以得有个判别,遇ASCII指针只移动1,遇汉字移动2,自已查一下汉字的编码范围就行了.

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2004-11-26 20:23
jpsor
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2004-11-24
收藏
得分:0 

是这样吗?

void printsetence(constant char *line)

{int i;

for(i=0;line[i]!='\o';i++)

{

if(line[i]='!'||line[i]='?'||line[i]='.')

printf("\n");

else printf("%c",line[i]);

}

}

2004-11-27 11:47
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
倒,你写的是什么?先把E文的解决,再来谈中文吧

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2004-11-28 19:09
xueer
Rank: 1
等 级:新手上路
威 望:1
帖 子:511
专家分:0
注 册:2004-10-8
收藏
得分:0 

题目好象也不太简单呀。 楼主写的程序是…………

看不懂


2004-11-28 21:46
时空之蕊
Rank: 2
等 级:新手上路
威 望:3
帖 子:691
专家分:0
注 册:2004-10-31
收藏
得分:0 

大家好对不起大家了!!这几天要帮别人有事!!所以没有写!!今天看到这么多人关心!所以我就写了了!!有详细的注释!如果不懂联系我!! 程序如下:

/* void printsentense(char *line) *line是一个中文自然段,要求将*line中的汉字按句输出。 若遇到中文标点“。”“?”“!”即换行输出。 */ #include <stdio.h> #include <string.h>

void printsentense(char * line) { char * phead,*pend,*pend1,*pend2,*pend3; //phead为中文自然段的起始地址,pend为结束地址 //phendn为查找结束的标志地址 bool fFind=false;//判断是否找到结束标志 //初始化认为不存在

pend=pend1=pend2=pend3=phead=line;//初始化 while(*phead!='\0')//但没有到末尾时 { pend1=strstr(phead,"。");//查找是否存在。 pend2=strstr(phead,"!");//查找是否存在! pend3=strstr(phead,"?");//查找是否存在? /*********************************************/ //如果要添加其他的判断结束标志请在此判断

/*********************************************/

/************START**START******START*****************************************/ pend=phead+strlen(phead); if(pend1!=NULL) { fFind=true; pend=pend1;//如果存在。则设置pend } if(pend2!=NULL && pend >=pend2) { fFind=true;//注意这里必须使用>=不能用> pend=pend2;//如果存在!并且是在pend的位置或者前面更改pend } if(pend3!=NULL && pend >=pend3) { fFind=true;//注意这里必须使用>=不能用> pend=pend3;//如果存在?并且是在pend的位置或者前面更改pend }

/*********************************************/ //如果要添加其他的判断结束标志请在此判断结束的标志位置

/*********************************************/ //以上为判断并设置pend为正确的结束位置 /***********END*END*END*END***************************************************/

for(char* i=phead;i<pend;i++) printf("%c",*i); if(pend!=phead) printf("\n");

if(fFind==true) pend+=2;//如果是中文结束标号pend应该加2 phead=pend;//初始化下一个自然段首地址 fFind=false;//初始化认为不存在 } }

[此贴子已经被作者于2004-11-29 03:00:51编辑过]


我渴望掌控时空的核心——用最先进的技术,打造无比美丽的世界!
2004-11-29 02:59
快速回复:菜鸟求助一个自定义函数
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017190 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved