欢迎来到代码驿站!

C代码

当前位置:首页 > 软件编程 > C代码

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

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

#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <string>
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();
}

上一篇:数据结构与算法中二叉树子结构的详解

栏    目:C代码

下一篇:C++ 类的构造函数详解及实例

本文标题:用c++实现将文本每个单词首字母转换为大写

本文地址:http://www.codeinn.net/misctech/113759.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有