输入一个英文句子,将句子中每个单词的首字母大写后输出.

来源:百度知道 编辑:UC知道 时间:2024/05/19 02:04:23
输入一个英文句子,将句子中每个单词的首字母大写后输出.
例如
输入 this is a test program
输出 This Is A Test Program
用C语言

Perl有个函数可以将一个串的第一个字母大写,这个函数就是ucfirst(),uc()函数并可以把一个串中的每个单词首字母大写。为了将一个串的每个单词首写字母大写,可以以简单的形式联合ucfirst()和lc()函数。比如:

sub UCFirstWords
{
my ($string) = @_;

$string =~ s/(w+)/ucfirst(lc())/ge;
return $string;
}

这个程序使用单个已通过的参数并申请匹配单词的正则表达式。在默认的状态下,Perl匹配形式是贪心法:它将匹配所有能匹配的文字并将整个单词放到变量中。通过使用lc()函数呈现整个单词的小写字母替换表达式部分然后,使用ucfirst()大写第一个字母。

在代入操作中使用g和e改造者同样很重要。G改造者告诉代入操作匹配操作数全局或者通过串移动并且匹配尽可能多的次数。E改造者告诉代入操作数对待替代串为可执行的Perl代码。没有e改造者,文字文本"ucfirst(lc(xxx))"将被包含在输出中——'xxx'用任何匹配的文字替代。

方法1限制单词长度:

#include <ctype.h>
#include <stdio.h>
#include <string.h>

int main()
{
char c, *pstr;
char szWord[16];

while(1)
{
pstr = szWord;
while((c = getchar()) != ' ' && c != '\n' && c != EOF)
{
*pstr++ = c;
}
if(c == ' ')
*pstr++ = ' ';

*pst