>>>>>
笔记
#include <iostream>// 所有以#号开头的,都是预处理文件【理解:引入此文件】
int main()
{
std::cout << "HelloWorld!" << std::endl;// 输出一个字符串
char str[0xFF]{ "hello" };
const char* strA{ "hello" };
char* strB = new char[0xFF]{ "hello" };
char char_test{ 'A'};// 占1字节
char_test++;// 得到 B
wchar_t char_test2{ L'A' };// 占2字节,岁系统变化,可能占4字节,L代表宽字节常量
std::cout << "你输入的内容:" << char_test2 << std::endl;// 65
std::wcout << "你输入的内容:" << char_test2 << std::endl;// A
char16_t char_test3{ u'A' };// 占2字节
std::cout << "你输入的内容:" << char_test3 << std::endl;// 65
char32_t char_test4{ U'A' };// 占4字节
std::cout << "你输入的内容:" << char_test4 << std::endl;// 65
char str[0x5];// 存在漏洞:字符串越界
scanf_s("%s", str);// 加_s限制可输入最大字符串数量,规避字符串越界
wchar_t wstr[0x5];
wscanf_s(L"%s", str);
// 字符串长度
char str[0xFF]{"hello你好"};//
std::cout << strlen(str);// char不能准确出来中英混合的字符,英文算1个,中文算2个
wchar_t wstr[0xFF]{ L"hello你好" };
std::cout << wcslen(wstr);// 能准确算出中英混合字符,所有的字符都算2个。
}
// 在字符串内 两个\\ 表示 \,而一个\ 表示 转译
// "\"" 显示 "
// "\'" 显示 '
// "\\" 显示 \
// "\n" 换行
大写小写转换
//原理:改变char数值得到对应值,即a->A中间有32个数
char test{ 'a' };
test -= 32;// 得到A
字符处理库,最后两个是反的
格式化流输出
格式化流输入:scanf效率 大于 std::cin
实操->求char内中英混合的字符个数
unsigned num1= 0;// 字符长度
unsigned num2 = 0;// 字符长度
char str[0xFF]{ "你好123" };//
for (auto value : str)
{
if (value == '\0') {
num2 /= 2;
break;
}
if (value >0 && value < 127) {
num1++;
std::cout << "当前字符1:" << value << std::endl;
}
else {
// 代表是汉字
num2++;
std::cout << "当前字符2:" << value << std::endl;
}
}
unsigned num = num1 + num2;
std::cout << "字符个数:" << num << std::endl;
方式二:
char str10[0xFF]{ "你好123" };
int length = 0;
for (int i = 0; str10[i];i++) {
if (str10[i] < 0)i++;
length++;
}
std::cout << "字符串长度" << length << std::endl;
>>>>>