iswgraph() (header <cwctype>) kiểm tra xem một ký tự rộng (wide character) có biểu diễn đồ họa (graphical representation) hay không. Là phiên bản wide-char của isgraph() (<cctype>).
Ký tự có biểu diễn đồ họa
Tất cả ký tự in được (printable) trừ khoảng trắng (space). Bao gồm:
- Chữ cái:
A-Z,a-z(và các chữ cái Unicode). - Chữ số:
0-9. - Ký tự đặc biệt:
!@#$%^&*()_+-=[]{}|;':",./<>?v.v. - KHÔNG bao gồm: space (
' '), tab ('\t'), newline ('\n'), các control character khác.
Cú pháp
int iswgraph(wint_t ch);
- Tham số:
wint_t ch(kiểu wide character, thường làwchar_t). - Trả về: Non-zero (true) nếu có biểu diễn đồ họa, 0 (false) nếu không.
Ví dụ 1: Kiểm tra ký tự thường
#include <cwctype>
#include <iostream>
using namespace std;
int main() {
wchar_t ch1 = L'%';
wchar_t ch2 = L')';
if (iswgraph(ch1))
wcout << L"Có biểu diễn đồ họa: " << ch1 << '\n';
else
wcout << L"KHÔNG có biểu diễn đồ họa: " << ch1 << '\n';
if (iswgraph(ch2))
wcout << L"Có biểu diễn đồ họa: " << ch2 << '\n';
else
wcout << L"KHÔNG có biểu diễn đồ họa: " << ch2 << '\n';
return 0;
}
Đầu ra
Có biểu diễn đồ họa: % Có biểu diễn đồ họa: )
Ví dụ 2: Ký tự số vs ký tự điều khiển
#include <cwctype>
#include <iostream>
using namespace std;
int main() {
wchar_t ch1 = L'9';
wchar_t ch2 = L'\n'; // Newline
wcout << L'9' << (iswgraph(ch1) ? L": Có" : L": Không") << L" biểu diễn đồ họa\n";
wcout << L'\\n' << (iswgraph(ch2) ? L": Có" : L": Không") << L" biểu diễn đồ họa\n";
return 0;
}
Đầu ra
9: Có biểu diễn đồ họa \n: Không biểu diễn đồ họa
Ví dụ 3: Kiểm tra toàn bộ chuỗi rộng
#include <cwctype>
#include <iostream>
#include <string>
using namespace std;
bool all_graphical(const wstring& s) {
for (wchar_t ch : s) {
if (!iswgraph(ch)) return false;
}
return true;
}
int main() {
wstring s1 = L"Hello123";
wstring s2 = L"Hello World"; // Có space
wstring s3 = L"Line1\nLine2"; // Có newline
wcout << L"'" << s1 << L"' all graphical: " << all_graphical(s1) << '\n'; // true
wcout << L"'" << s2 << L"' all graphical: " << all_graphical(s2) << '\n'; // false
wcout << L"'" << s3 << L"' all graphical: " << all_graphical(s3) << '\n'; // false
return 0;
}
Hàm liên quan (wide character)
| Hàm | Header | Kiểm tra |
|---|---|---|
iswprint | <cwctype> | In được (bao gồm space) |
iswspace | <cwctype> | Whitespace (space, tab, nl...) |
iswalnum | <cwctype> | Chữ cái hoặc số |
iswalpha | <cwctype> | Chữ cái |
iswdigit | <cwctype> | Chữ số |
iswpunct | <cwctype> | Ký tự punctuation |
iswcntrl | <cwctype> | Control character |
iswupper / iswlower | <cwctype> | Chữ hoa / chữ thường |
Lưu ý
- Hành vi phụ thuộc vào locale hiện tại (
setlocale). - Đối số phải là
wint_thoặcWEOF. Ép kiểu từwchar_tan toàn. - Với
charthông thường, dùngisgraph()từ<cctype>.