(C语言编程)输入一个英文句子,将每个英文单词的头字母变为大写,单词之间用空格隔开
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(C语言编程)输入一个英文句子,将每个英文单词的头字母变为大写,单词之间用空格隔开相关的知识,希望对你有一定的参考价值。
(C语言编程)输入一个英文句子,将每个英文单词的头字母变为大写,单词之间用空格隔开
程序已在dev-c++下编译确认:/*提取用空格分隔的字符串中的单词,并改单词首字母为大写*/
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
int partition(char *s1,char *s2,int pos)
int i,j;
i=pos;
while(s1[i]==' ')
i++;
if(s1[i]!='\0')
j=0;
while(s1[i]!='\0'&&s1[i]!=' ')
s2[j]=s1[i];
i++;
j++;
s2[j]='\0';
s2[0]=toupper(s2[0]);
return i;
else
return -1;
int main()
char string[256];
char partition_string[20];
int position;
int k;
printf("\nPlease input a string:");
gets(string);
position=0;
printf("\nThe result:\n");
k=0;
while((position=partition(string,partition_string,position))!=-1)
k++;
printf("%s ",partition_string);
printf("\n");
system("pause");
return 0;
参考技术A #include <stdio.h>
#include <string.h>
int main()
char a[1000];
unsigned i,flag=1;
printf("输入字符串:\n");
gets(a);
for(i=0;i<=strlen(a)-1;i++)
if(a[i]>='a'&&a[i]<='z')
if(flag==1)
a[i]-=32;
flag=0;
if(a[i]==' ')
flag=1;
puts(a);
return 0;
参考技术B 程序已在dev-c++下编译确认:
/*提取用空格分隔的字符串中的单词,并改单词首字母为大写*/
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
int partition(char *s1,char *s2,int pos)
int i,j;
i=pos;
while(s1[i]==' ')
i++;
if(s1[i]!='\0')
j=0;
while(s1[i]!='\0'&&s1[i]!=' ')
s2[j]=s1[i];
i++;
j++;
s2[j]='\0';
s2[0]=toupper(s2[0]);
return i;
else
return -1;
int main()
char string[256];
char partition_string[20];
int position;
int k;
printf("\nPlease input a string:");
gets(string);
position=0;
printf("\nThe result:\n");
k=0;
while((position=partition(string,partition_string,position))!=-1)
k++;
printf("%s ",partition_string);
printf("\n");
system("pause");
return 0;
回答者:匿名 2009-6-29 10:30
检举高手,高手!
回答者: 沸腾的阳光 - 助理 三级 2009-6-29 10:35
检举#include <stdio.h>
#include <string.h>
int main()
char a[1000];
unsigned i,flag=1;
printf("输入字符串:\n");
gets(a);
for(i=0;i<=strlen(a)-1;i++)
if(a[i]>='a'&&a[i]<='z')
if(flag==1)
a[i]-=32;
flag=0;
if(a[i]==' ')
flag=1;
puts(a);
return 0; 参考技术C 用数组存储单词。然后读取首字母。将其转化为大写 参考技术D 高手,高手!
用C或C++编写:输入一段英文句子,输出其中最长的单词
包含标点处理
#include <iostream>#include <string>
#include <algorithm>
#include <sstream>
int main()
std::string t, word, long_word;
getline(std::cin, t);
std::istringstream iss(t);
while (iss >> word)
std::string result;
std::remove_copy_if(word.begin(), word.end(),
std::back_inserter(result),
ispunct);
if (result.length() > long_word.length())
long_word = result;
std::cout << long_word << std::endl;
getchar();
return 0;
参考技术A #include<iostream>
#include<string>
using namespace std;
int main()
string word,longWord;
cout << "请输入英文句子,按ctrl+z后按下回车结束输入:\\n";
while (cin >> word)
if (word.length() > longWord.length())
longWord=word;
cout << "最长单词是"<<longWord<<endl;
return 0;
追问
谢谢
请问为什么要按ctrl+z再按回车输入
可不可以做到直接回车输入。。。。萌新一枚,望详细解释
本回答被提问者和网友采纳以上是关于(C语言编程)输入一个英文句子,将每个英文单词的头字母变为大写,单词之间用空格隔开的主要内容,如果未能解决你的问题,请参考以下文章