从键盘输入一个英文句子,并处理:去掉最左边和最右边的空白(空格、制表符),把连续的空白替换为一个空格。

本文介绍了一个C语言程序,该程序能够从输入的英文句子中移除所有空白字符(包括空格和制表符),并确保处理后的字符串不会包含连续的空白字符。通过使用指针操作实现了这一功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

#include <stdio.h>
#define SIZE 80
void readSentence(char * buf, int length);
int main()
{
 char buffer[SIZE];
 printf("请输入一个英文句子:\n");
 readSentence( buffer, SIZE );
 printf("处理后:\n[%s]\n", buffer ); 
 return 0;
}
void readSentence(char * buf, int length)
{
 char temp[SIZE],*pB,*pT;
 gets(buf);
 pB=buf;pT=temp;
 while(*pB==' '||*pB=='\t') // 当字符串等于空格 或制表符
  pB++;                  // 过滤掉前导空格
 while(*pB!='\0')           // 当字符串没结束。
 {
  if(*pB!=' '&&*pB!='\t')// 如果中间 字符不等于空格 并且不等于制表符
  {
   *pT++=*pB++;       // 把pB指针的内容 赋值给PT
   continue;          // 继续
  }
  while(*pB!='\0'&&(*pB==' '||*pB=='\t')) //  把连续出现的'\0' 或者'\t' 转换成赋值一个空格.
   pB++;                               // 
  if(*pB!='\0')                           // 
   *pT++=' ';                          // 
 }
 *pT='\0';
 pB=buf;pT=temp;  // 让pB的地址指回buf, 让temp的地址指回pT. while循环里是对指针进行操作,操作完后,把开始的指向指回。
// 

 while(*pT!='\0')
  *pB++=*pT++;
 *pB='\0';
 return;   
}

【问题描述】 英文电影中参演人员名单一般以某种方式进行排版显示。给定一个未排版的文件listin.txt,该文件中每行参演人员名单由冒号:分隔成前后两部分,但格式杂乱无章,单词(由除空格水平制表符之外的其它字符构成)之间可能有多个空格或水平制表符分隔。编写程序,要求将其按如下排版规则排版输出到另一个文件listout.txt中: 1.从标准输入(即键盘)读取一整数,作为排版后所有各行冒号:在一行中的固定位置;假设输入的整数肯定大于排版后所有各行冒号:前的字符个数,位置从1开始计数; 2.冒号:左边的单词串以行头为基准左对齐,左边一个单词与冒号之间以空格填充;冒号:右边的单词串以冒号:为基准左对齐,一个单词后只有回车换行符,不再有其它字符; 3.冒号:左右两边的单词间都只有一个空格分隔,且要求冒号两边至少各有一个空格。 假设输入文件中每行字符个数不超过100。 【输入形式】 待排版的参演人员名单从当前目录下的listin.txt文件中读入;表示冒号:位置的整数从标准输入读入。 【输出形式】 排版后的参演人员名单输出到当前目录下的listout.txt中。 【输入样例】 假设文件listin.txt内容为: Digital Intermediate by : EFILM Supervising Digital Colorist : STEVEN J. SCOTT Second Colorist :ANDREW FRANCIS Digital Intermediate Producer:LOAN PHAN Digital Intermediate Editor: DEVON MILLER
最新发布
03-24
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值