c语言 帮我检查一下 输入一段文字,每行用回车结束,文字输入完毕可以使用某个特殊字符作为结束,0
HIDE152019.04.28浏览4次分享举报
c语言输入一段文字,每行用回车结束,文字输入完毕可以使用某个特殊字符作为结束,要求如下:(1)每个句子首字母要大写(2)每个单词间多余的空格要去除(3)每句之间多余的空格和标点符号要... c语言 输入一段文字,每行用回车结束,文字输入完毕可以使用某个特殊字符作为结束,要求如下:
(1)每个句子首字母要大写
(2)每个单词间多余的空格要去除
(3)每句之间多余的空格和标点符号要去除
最后输出修正后的文字
请使用数组和指针实现以上功能
(这是我写的,没语法错误,但我不懂为什么实行时什么都不显示,帮我检查一下,多谢了)
#include
#include
#define maxnum 500
int main()
{
int k;
char english[k][maxnum];
char (*ptrenglish)[maxnum];
int i=1,j,word;
ptrenglish=english;
printf("请输入一段文字(每行用回车结束,文字输入完毕后请现按回车再按“*”):\n");
while(ptrenglish[i-1][0]!='*')
{
gets(ptrenglish[i]);
i++;
}
i=1;
j=0;
while(ptrenglish[i][0]!='*')
{
ptrenglish[i][0]=toupper(ptrenglish[i][0]);
i++;
}
i=1;
while(ptrenglish[i][0]!='*')
{
word=0;
for(j=0;j
{
if((ptrenglish[i][j]<='z'&&ptrenglish[i][j]>='a')||(ptrenglish[i][j]<='Z'&&ptrenglish[i][j]>='A'))
word=2;
else if(ptrenglish[i][j]=' '&&word==2)
word=0;
else if(ptrenglish[i][j]=' '&&(word==0||word==1))
{
for(j=0;j
ptrenglish[i][j]=ptrenglish[i][j+1];
}
else if(word==2)
word=1;
else if(word==1)
{
for(j=0;j
ptrenglish[i][j]=ptrenglish[i][j+1];
}
else if(word==0)
continue;
}
i++;
}
i=1;
printf("调整后该段文字为:\n");
while(ptrenglish[i-1][0]!='*')
{
printf("%s",ptrenglish[i]);
i++;
}
return 0;
} 展开