用c++實現將文本每個單詞首字母轉換為大寫

來源:互聯網
上載者:User

利用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();
}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.