整理英语句子:将首字母大写,单词之间只能一个空格,最后加句号

利用指针指向字符串

#include<stdio.h>
#include<string.h>
void sentence(char*p1)
{
 char*p2;
 if(p1[0]>='a'&&p1[0]<='z')
  p1[0]-=32;
 while(*p1)//数组其他元素均为0,若为零则可以无视,因为待会要插入一个中指符'\0'
{
   p2=p1+1;//p2指针指向下一个数组元素
   if(*p1==' ')
   {
     while(*p2==' ')
       {p2++;}//若p2指向空格,则跳过这个元素,待p2指向不是空格的元素
    strcpy(p1,p2-1);//注意,此函数是把,后面的复制到前面的;而且是将整个字符串(即指针所指的元素到'\0'前的)复制了过去
    }
    p1++;//p1移项下一个数组元素,则p2在下一个循环中自动指向下一个元素
}
  *p1='.';//指针已经指向最后一个元素
  *(p1+1)='\0';//字符串结尾标志为'\0'
}
int main()
{
  char str[100]={0},ch;
  printf("输入一句英文语句:\n");
  gets(str);
  sentence(str);
  printf("整理后的英文语句:\n");
  puts(str);
}
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值