从键盘输入字符串,将其中的单词(两个空格之间的字符串)的第一个字母转换为大写字母 10

输出原始字符串及转换后的所有单词,直到输出“*”结束转换和输出。要求:单词的第一个字母转换为大写字母由一个单独的函数完成c++... 输出原始字符串及转换后的所有单词,直到输出“*”结束转换和输出。
要求:单词的第一个字母转换为大写字母由一个单独的函数完成
c++
展开
 我来答
帐号已注销
2011-12-22 · TA获得超过158个赞
知道小有建树答主
回答量:122
采纳率:0%
帮助的人:121万
展开全部

#include <iostream>

#include <iterator>

#include <cctype>

#include <string>

#include <algorithm>

#include <vector>

using namespace std;

string capitalize(string &s)

{

if(s.empty()) return s;

string cap_str(s);

s[0] = std::toupper(s[0]);

return cap_str;

}

int main()

{

vector<string> data;

cout << "请输入字符串,以空格分隔,Ctrl+Z结束:  ";

copy(istream_iterator<string>(cin), istream_iterator<string>(), back_inserter(data));

cout << "原始字符串为: ";

copy(data.begin(), data.end(), ostream_iterator<string>(cout, "、"));

cout << endl;

for_each(data.begin(), data.end(), capitalize);

cout << "新字符串为:  ";

copy(data.begin(), data.end(), ostream_iterator<string>(cout, "、"));

cout << endl;

return 0;

}

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
梦醒还追
2011-12-22
知道答主
回答量:24
采纳率:0%
帮助的人:25.2万
展开全部
#include<stdio.h>

void main()
{
char str[1024];
printf("输入字符串:\n");
gets(str);
int i;
for (i=0;str[i] != '*';i++)
{
if((i==0)&&(str[i]>='a'&&str[i]<='z'))
str[i]=str[i]-32;
if ((str[i] == ' ')&&(str[i+1]>='a'&&str[i+1]<='z'))
{
str[i+1]=str[i+1]-32;
}
printf("%c",str[i]);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式