用c++實(shí)現(xiàn)將文本每個(gè)單詞首字母轉(zhuǎn)換為大寫(xiě)
更新時(shí)間:2013年05月29日 16:08:50 作者:
本篇文章是對(duì)用c++實(shí)現(xiàn)將文本每個(gè)單詞首字母轉(zhuǎn)換為大寫(xiě)的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
利用C++,讀入一個(gè)英文文本,并將文本中的每個(gè)英文單詞首字母大寫(xiě)。
本程序練習(xí)了從一個(gè)文本中讀入流,用到了fstream流。 在文本的轉(zhuǎn)換過(guò)程中,用到了isalpha()——是否是字母,toupper()——轉(zhuǎn)換為大寫(xiě)字符 這兩個(gè)函數(shù)(針對(duì)string對(duì)象的單個(gè)字符的操作。類(lèi)似的操作還有isalnum()——是否是字母或數(shù)字,iscntrl()——是否是控制字符, isdigit()——是否是數(shù)字,isgraph()——是否不是空格,但可以打印,islower()——是否是小寫(xiě)字母, isprint()——是否是可以打印的字符,ispunct()——是否是標(biāo)點(diǎn)符號(hào),isspace()——是否是空格,isupper()——是否是大寫(xiě)字母,isxdigit()——是否是十六進(jìn)制數(shù),tolower()——轉(zhuǎn)換為小寫(xiě)。
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
//讀出文件到控制臺(tái)
char buffer[500];
string str;
ifstream ifs; //提供讀文件功能
ifs.open("d:\\com.txt",ios::in);//in--打開(kāi)文件做讀操作
cout << "d:\\com.txt" << "中的內(nèi)容如下:" << endl;
while(!ifs.eof()) //判斷是否達(dá)到stream的結(jié)尾
{
ifs.getline(buffer, 500, '\n'); //字符達(dá)到256個(gè)或遇到換行就結(jié)束
str = buffer;
if (str.empty()) // 如果某行為空,則跳過(guò)
{
continue;
}
else
{
if (isalpha(str[0]))
{
str[0] = toupper(str[0]);
}
for (string::size_type index = 1; index != str.size(); index++)
{
//str[index]為字母,且它前面的不為字母,則大寫(xiě)
if (isalpha(str[index]) && !isalpha(str[index-1]))
{
str[index] = toupper(str[index]); //注意這里轉(zhuǎn)化之后要賦一下值
}
}
}
cout << str << endl;
}
ifs.close();
}
本程序練習(xí)了從一個(gè)文本中讀入流,用到了fstream流。 在文本的轉(zhuǎn)換過(guò)程中,用到了isalpha()——是否是字母,toupper()——轉(zhuǎn)換為大寫(xiě)字符 這兩個(gè)函數(shù)(針對(duì)string對(duì)象的單個(gè)字符的操作。類(lèi)似的操作還有isalnum()——是否是字母或數(shù)字,iscntrl()——是否是控制字符, isdigit()——是否是數(shù)字,isgraph()——是否不是空格,但可以打印,islower()——是否是小寫(xiě)字母, isprint()——是否是可以打印的字符,ispunct()——是否是標(biāo)點(diǎn)符號(hào),isspace()——是否是空格,isupper()——是否是大寫(xiě)字母,isxdigit()——是否是十六進(jìn)制數(shù),tolower()——轉(zhuǎn)換為小寫(xiě)。
復(fù)制代碼 代碼如下:
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
//讀出文件到控制臺(tái)
char buffer[500];
string str;
ifstream ifs; //提供讀文件功能
ifs.open("d:\\com.txt",ios::in);//in--打開(kāi)文件做讀操作
cout << "d:\\com.txt" << "中的內(nèi)容如下:" << endl;
while(!ifs.eof()) //判斷是否達(dá)到stream的結(jié)尾
{
ifs.getline(buffer, 500, '\n'); //字符達(dá)到256個(gè)或遇到換行就結(jié)束
str = buffer;
if (str.empty()) // 如果某行為空,則跳過(guò)
{
continue;
}
else
{
if (isalpha(str[0]))
{
str[0] = toupper(str[0]);
}
for (string::size_type index = 1; index != str.size(); index++)
{
//str[index]為字母,且它前面的不為字母,則大寫(xiě)
if (isalpha(str[index]) && !isalpha(str[index-1]))
{
str[index] = toupper(str[index]); //注意這里轉(zhuǎn)化之后要賦一下值
}
}
}
cout << str << endl;
}
ifs.close();
}
相關(guān)文章
C/C++?Qt?TabWidget?實(shí)現(xiàn)多窗體創(chuàng)建詳解
TabWidget組件配合自定義Dialog組件,可實(shí)現(xiàn)一個(gè)復(fù)雜的多窗體分頁(yè)結(jié)構(gòu)。這篇文章就主要介紹了如何通過(guò)TabWidget實(shí)現(xiàn)多窗體的創(chuàng)建,感興趣的小伙伴可以了解一下2021-12-12
c++之std::get_time和std::put_time
std::get_time和std::put_time是C++中用于日期和時(shí)間的格式化和解析的函數(shù),它們都包含在<iomanip>頭文件中,std::get_time用于從輸入流中解析日期時(shí)間字符串,而std::put_time則用于將std::tm結(jié)構(gòu)格式化為字符串2024-10-10
OpenCV基于距離變換和分水嶺實(shí)現(xiàn)圖像分割
圖像分割是根據(jù)灰度、顏色、紋理和形狀等特征,把圖像分成若干個(gè)特定的、具有獨(dú)特性質(zhì)的區(qū)域。本文將基于距離變換和分水嶺實(shí)現(xiàn)圖像分割,需要的可以了解一下2022-09-09
C 創(chuàng)建鏈表并將信息存儲(chǔ)在二進(jìn)制文件中讀取的實(shí)例代碼
C 創(chuàng)建鏈表并將信息存儲(chǔ)在二進(jìn)制文件中讀取的實(shí)例代碼,需要的朋友可以參考一下2013-03-03

