首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

未解有关问题继续提问——字符删除有关问题

2012-02-07 
未解问题继续提问——字符删除问题一个关于字符删除的问题还是没有明白,在把它发一下,这次寻找正确代码问题

未解问题继续提问——字符删除问题
一个关于字符删除的问题还是没有明白,在把它发一下,这次寻找正确代码


问题如下:
现有一英文文章
已经按行读去到数组xx[50][80]中
变量maxline记录了文章的行数
文章的格式如下:
文章只有单词,空格和标点符号组成,每个单词长度不超过20,每行不超过80个字符
现要求删除文章的空格和标点及长度为奇数的单词,其余的仍然按顺序存储到数组xx中

请编写函数delword()完成上述功能


由于自己写的代码得不到正确的结果,并且看起来也不方便
这次寻找代码




[解决办法]
呵呵,还是贴出你的code,大家一起来看看的
[解决办法]
是这个原帖吧 http://community.csdn.net/Expert/topic/5378/5378832.xml?temp=.1892511
写一段仅供参考
#define isCharacter(c) ((c)> = 'a '&&(c) <= 'z '||(c)> = 'A '&&(c) <= 'Z ')
char str[]= "... ";
char *dest,*src,*temp;
int odd = 0; /*判断奇数*/
src = str;
while(isCharacter(*src)){ /*跳过第一个偶数单词*/
odd = !odd;
src ++;
}
dest = odd ? str : src;

while( *src ){
if( isCharacter(*src) ){
odd = 0; temp = dest; /*保存地址*/
do{
*dest++ = *src++;
odd = !odd;
}while( isCharacter(*src) );
if(odd) dest = temp; /*如果是奇数,dest退到原位*/
if(*src==0)break;
}
src ++;
}
*dest = 0; /*结束符*/

[解决办法]
void DelWord(void)
{
char newxx[80]= " ",word[20]= " ";
int i,j=0,wl=0;
for(i=0;i <maxline;i++)
{
while(xx[i][j]!=0)
{
//if(isalpha(xx[i][j]))word[wl++]=xx[i][j];
while(isalpha(xx[i][j]))//取出一个单词
word[wl++]=xx[i][j++];
word[wl]=0;//注意结束符
if(wl%2==0)
strcat(newxx,word);
//for(wl=0;wl <strlen(word);wl++)word[wl]=0;

wl=0;
j++;
}
// if(isalpha(xx[i][--j]))
//{
// if(wl%2==0)strcat(newxx,word);
// for(wl=0;wl <strlen(word);wl++)word[wl]=0;
// wl=0;
// }
strcpy(xx[i],newxx);
//for(wl=0;wl <80;wl++)newxx[wl]=0;
//wl=0;
newxx[0]=0;//清空串直接清第一个字符就行了
j=0;//预备第二次从头开始.
}
}

热点排行