c语言用循环转换单词首字母,用c++实现将文本每个单词首字母转换为大写

利用C++,读入一个英文文本,并将文本中的每个英文单词首字母大写。本程序练习了从一个文本中读入流,用到了fstream流。 在文本的转换过程中,用到了isalpha()——是否是字母,toupper()——转换为大写字符 这两个函数(针对string对象的单个字符的操作。类似的操作还有isalnum()——是否是字母或数字,iscntrl()——是否是控制字符, isdigit()——是否是数字,isgraph()——是否不是空格,但可以打印,islower()——是否是小写字母, isprint()——是否是可以打印的字符,ispunct()——是否是标点符号,isspace()——是否是空格,isupper()——是否是大写字母,isxdigit()——是否是十六进制数,tolower()——转换为小写。

复制代码 代码如下:

#include "stdafx.h"

#include

#include

#include

using namespace std;

int _tmain(int argc, _TCHAR* argv[])

{

//读出文件到控制台

char buffer[500];

string str;

ifstream ifs; //提供读文件功能

ifs.open("d:\\com.txt",ios::in);//in--打开文件做读操作

cout << "d:\\com.txt" << "中的内容如下:" << endl;

while(!ifs.eof())  //判断是否达到stream的结尾

{

ifs.getline(buffer, 500, '\n'); //字符达到256个或遇到换行就结束

str = buffer;

if (str.empty()) // 如果某行为空,则跳过

{

continue;

}

else

{

if (isalpha(str[0]))

{

str[0] = toupper(str[0]);

}

for (string::size_type index = 1; index != str.size(); index++)

{

//str[index]为字母,且它前面的不为字母,则大写

if (isalpha(str[index]) && !isalpha(str[index-1]))

{

str[index] = toupper(str[index]);  //注意这里转化之后要赋一下值

}

}

}

cout << str << endl;

}

ifs.close();

}

时间: 2013-05-27

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值