用C语言编辑,输入一个英文句子,删除句子的前导空格和后导空格,并使单词之间只有一个空格。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用C语言编辑,输入一个英文句子,删除句子的前导空格和后导空格,并使单词之间只有一个空格。相关的知识,希望对你有一定的参考价值。
char *cp = " your input world ";char buf[512] = 0;
int i = 0;
int world = 0;
while(*cp != \'\\0\')
//删除句子的前导空格和多余的中间空格
for(;(*cp == \' \' || *cp == \'\\t\' ) && *cp != \'\\0\'; cp++);
for(;(*cp != \' \' && *cp != \'\\t\' ) && *cp != \'\\0\'; cp++)
buf[i++]=*cp;
if(*cp == \'\\0\')
buf[i]=\'\\0\';
break;
else
buf[i++]=*cp;
//删除句子的后导空格
if(i>1 && (buf[i-1] == \' \' || buf[i-1] == \'\\t\'))
buf[i-1]=\'\\0\';
printf("%s\\n",buf); 参考技术A 是不是这个?
输入一个英语句子: l lll lllll lllll l llll
l lll lllll lllll l llll
#include <stdio.h>
void main()
char t[100];char w[100];
printf("输入一个英语句子:");
gets(t);
int n=0,i,j=0;
while(t[n]!=0)n++;
for(i=0;i<n;i++)
if((t[i]<='z'&&t[i]>='a')||(t[i]<='Z'&&t[i]>='A'))
w[j]=t[i];j++;
if(t[i]==' '&&t[i+1]!=' ')
w[j]=t[i];j++;
w[j]=0;
if(w[0]==' ')
n=0;while(w[n]!=0)n++;
for(i=0;i<n-1;i++)w[i]=w[i+1];
printf("%s\n",w);本回答被提问者采纳 参考技术B #include <stdio.h>
#include <string.h>
int main(void)
char aa[1024];
char *p = NULL;
memset(aa, 0x00, sizeof(aa));
gets(aa);
/* 删除尾部空格 */
p = &aa[strlen(aa) - 1];
while(' ' == *p--)
p[1] = '\0';
/* 删除头部空格 */
p = aa;
while(' ' == *p++);
p--;
strcpy(aa, p);
/* 删除连续空格 */
while(NULL != (p = strstr(aa, " ")))
strcpy(p, &p[1]);
printf("%s\n", aa);
return 0;
参考技术C #include <stdio.h>
#include <stdlib.h>
char word[100];
int main()
//freopen("s.in","r",stdin);
//freopen("s.out","w",stdout);
scanf("%s",word);
printf("%s",word);
while(scanf("%s",word)!=EOF)
printf(" %s",word);
printf("\n");
return 0;
我表示我只是分不够过来混分的...
英文单词数量统计
题目内容:
输入一个英文句子,句子中的单词用空格隔开,隔开单词的空格可能不止一个,现要求去掉单词之间多余的空格,使得两个单词之间只有一个空格,且句子开头无空格,再统计句子中单词的个数并输出。
输入格式:
输入占一行,是一个包含空格的英文句子,以回车结束
输出格式:
输出包括两行,第一行是去掉多余空格后的英文句子;第二行是一个数值,表示句子中单词的个数。
输入样例:
I am happy.
输出样例:
I am happy.
3
1 #include <iostream> 2 using namespace std; 3 #define N 250 4 5 int main() 6 7 char str[N] = ""; 8 char *p = str,*p1=str; 9 gets(str); 10 int count = 0; 11 12 while(*p) 13 14 if(*p!=‘ ‘) 15 16 *p1++ = *p; 17 if(*(p+1)==‘ ‘||!(*(p+1))) 18 19 count++; 20 *p1++ = ‘-‘; 21 22 23 p++; 24 25 *(p1-1)=‘\0‘; 26 27 cout<<str<<endl; 28 cout<<count<<endl; 29 30 return 0; 31
题目内容:
设计一个时间类(class Time),其中有表示“时、分、秒”的数据成员,设计初始化3个数据成员的构造函数,实参缺省时均初始化为0;设计拷贝构造函数,用一个已经存在的Time对象初始化正在创建的新对象;设计成员函数SetTime设置时间的值;设计成员函数Print以24小时格式输出时间(如“09:20:45”、“14:30:00”)。注意,若表示时、分、秒的数据不在合理范围内,则将不合理的数据取0值。以下是主函数:
int main()
int h,m,s;
cin>>h>>m>>s; //从键盘依次输入时、分、秒的值
Time t1(h);
t1.Print();
t1.SetTime(h,m,s);
t1.Print();
Time t2(t1);
t2.Print();
return 0;
输入格式:
输入3个整型数,分别表示时、分、秒,数据之间以空格隔开。
输出格式:
输出包括三行,每行都是一个以24小时格式输出的时间。
输入样例:
4 50 66
输出样例:
04:00:00
04:50:00
04:50:00
请注意:提交代码时,需要完整的程序,即除了类的设计,还需要包括以上主函数。
1 #include <iostream> 2 #include <iomanip> 3 using namespace std; 4 5 class Time 6 int hour,minute,second; 7 public: 8 Time(int h=0,int m=0,int s=0) 9 if(h>=24) h=0; 10 if(m>=60) m = 0; 11 if(s>=60) s = 0; 12 hour = h; 13 minute = m; 14 second = s; 15 16 Time(const Time &t) 17 18 hour = t.hour; 19 minute = t.minute; 20 second = t.second; 21 22 void SetTime(int h,int m,int s) 23 if(h>=24) h=0; 24 if(m>=60) m = 0; 25 if(s>=60) s = 0; 26 hour = h; 27 minute = m; 28 second = s; 29 30 void Print() 31 cout<<setw(2)<<setfill(‘0‘)<<hour<<":"; 32 cout<<setw(2)<<setfill(‘0‘)<<minute<<":"; 33 cout<<setw(2)<<setfill(‘0‘)<<second<<endl; 34 35 ; 36 int main() 37 38 int h,m,s; 39 cin>>h>>m>>s; //从键盘依次输入时、分、秒的值 40 Time t1(h); 41 t1.Print(); 42 t1.SetTime(h,m,s); 43 t1.Print(); 44 Time t2(t1); 45 t2.Print(); 46 47 return 0; 48
以上是关于用C语言编辑,输入一个英文句子,删除句子的前导空格和后导空格,并使单词之间只有一个空格。的主要内容,如果未能解决你的问题,请参考以下文章
ZZNUOJ_用C语言编写程序实现1136:首字母变大写(附完整源码)