C语言利用指针编写程序统计段落的数
- 题目
- 代码
- 运行效果
1.题目:利用指针编写程序,从键盘输入若干个英文段落(长度不超过200字符),直到按’#’结束。统计其中段落的数量,并将每个单词的首字母转化成大写。
参考提示:用getchar()循环读取字符,直到输入’#’结束,之后加上字符串结束标志。段落以’n’,单词以空格、英文标点符号分隔。
2.代码
#include <stdio.h>
#include <stdlib.h>
int main(){
char article[200];
char *p;
int i;
int duanluo=1;
for(i = 0; i < 200;i++)
{
article[i] = getchar();
if(article[i] == '#')
{
article[i+1] = '\0';
break;
}
}
p=article;// 指针p指向字符串开始位置
if(*p>='a'&&*p<='z')//第一个字符是小写字母转化为大写字母
*p=*p-32;
while(*++p!='\0'){
if(*(p-1)==' '||*(p-1)=='.'||*(p-1)=='?'||*(p-1)=='!'||*(p-1)=='\n')
{
if(*p>='a'&&*p<='z')
*p-=32;//单词首字母小写转化为大写
}
else if(*p>='A'&&*p<='Z')
{
*p+=32;
}
if(*p == '\n' && *(p+1) == ' ')
{
if(*(p+2) == ' ' || (*(p+2)>='a'&&*(p+2)<='z')||(*(p+2)>='A'&&*(p+2)<='Z'))
duanluo++;//统计段落
}
}
puts(article);
printf("\t文章段落数为:%d\n", duanluo);
system("pause");
return 0;
}
3.运行效果