当前位置: 代码迷 >> C语言 >> 菜鸟求助一个自定义函数
  详细解决方案

菜鸟求助一个自定义函数

热度:193   发布时间:2004-11-24 21:18:00.0
菜鸟求助一个自定义函数

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

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

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

搜索更多相关的解决方案: 函数  定义  

----------------解决方案--------------------------------------------------------

晕 没人愿意帮个小忙吗?


----------------解决方案--------------------------------------------------------
顺便文一下如何在编程时输入汉字
----------------解决方案--------------------------------------------------------
我可以写过几天啊!!我正在写一个小游戏没有时间!如果你自己写遇到困难可以找我!!下周前我写好!
----------------解决方案--------------------------------------------------------

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


----------------解决方案--------------------------------------------------------
这个问题很简单,只要在!。?后加输一个'\n'就行了,汉字是双字节编码,ASCII是单字节编码,所以得有个判别,遇ASCII指针只移动1,遇汉字移动2,自已查一下汉字的编码范围就行了.
----------------解决方案--------------------------------------------------------

是这样吗?

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]);

}

}


----------------解决方案--------------------------------------------------------
倒,你写的是什么?先把E文的解决,再来谈中文吧
----------------解决方案--------------------------------------------------------

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

看不懂


----------------解决方案--------------------------------------------------------

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

/* 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编辑过]


----------------解决方案--------------------------------------------------------
  相关解决方案