用c++完成將文本每一個單詞首字母轉換為年夜寫。本站提示廣大學習愛好者:(用c++完成將文本每一個單詞首字母轉換為年夜寫)文章只能為提供參考,不一定能成為您想要的結果。以下是用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();
}