C++でstringオブジェクトを扱う文字
22580 ワード
stringオブジェクトを処理する文字の一般的な方法は、isalnum()です.文字がアルファベットまたは数字であるかどうかを判断します.isalpha():文字がアルファベットかどうかを判断します.iscntrl():文字が制御文字であるか否かを判断する;isdigit():文字が数字であるか否かを判断する;isgraph():文字が印刷可能な非スペース文字であるかどうかを判断します.ispunct():文字が句読点であるか否かを判断する;isspace():文字が空白文字であるか否かを判断する;isupper():文字が大文字かどうかを判断します.isxdigit():文字が16進数であるか否かを判断する;toupper():大文字に変換;tolower():小文字に変換します.例:StringDealChar.cpp:
01.
#include
02.
#include
03.
04.
using
std::cout;
05.
using
std::endl;
06.
using
std::string;
07.
08.
int
main() {
09.
10.
string s(
"Hello, World!123/n"
);
11.
12.
//
13.
string::size_type alnumCount = 0;
14.
//
15.
string::size_type alphaCount = 0;
16.
//
17.
string::size_type cntrlCount = 0;
18.
//
19.
string::size_type digitCount = 0;
20.
//
21.
string::size_type graphCount = 0;
22.
//
23.
string::size_type punctCount = 0;
24.
//
25.
string::size_type spaceCount = 0;
26.
//
27.
string::size_type upperCount = 0;
28.
//
29.
string::size_type xdigitCount = 0;
30.
31.
for
(string::size_type i = 0; i
32.
//
33.
if
(
isalnum
(s[i])) {
34.
alnumCount++;
35.
}
36.
//
37.
if
(
isalpha
(s[i])) {
38.
alphaCount++;
39.
}
40.
//
41.
if
(
iscntrl
(s[i])) {
42.
cntrlCount++;
43.
}
44.
//
45.
if
(
isdigit
(s[i])) {
46.
digitCount++;
47.
}
48.
//
49.
if
(
isgraph
(s[i])) {
50.
graphCount++;
51.
}
52.
//
53.
if
(ispunct(s[i])) {
54.
punctCount++;
55.
}
56.
//
57.
if
(
isspace
(s[i])) {
58.
spaceCount++;
59.
}
60.
//
61.
if
(
isupper
(s[i])) {
62.
upperCount++;
63.
}
64.
//
65.
if
(
isxdigit
(s[i])) {
66.
xdigitCount++;
67.
}
68.
}
69.
70.
cout <
71.
cout <
"alnumCount: "
<
72.
cout <
"alphaCount: "
<
73.
cout <
"cntrlCount: "
<
74.
cout <
"digitCount: "
<
75.
cout <
"graphCount: "
<
76.
cout <
"punctCount: "
<
77.
cout <
"spaceCount: "
<
78.
cout <
"upperCount: "
<
79.
cout <
"xdigitCount: "
<
80.
81.
//
82.
for
(string::size_type i = 0; i
83.
s[i] =
toupper
(s[i]);
84.
}
85.
cout <
86.
87.
88.
//
89.
for
(string::size_type i = 0; i
90.
s[i] =
tolower
(s[i]);
91.
}
92.
cout <
93.
94.
95.
system
(
"pause"
);
96.
return
0;
97.
}