1.char转int,用符号位补高位,8位变32位
2.32位机器,指针大小4个字节
3.统一码
4.basic_string 是一个模版,可以存不同类型的字符串 ,不同的编码要有不同的char类型
string存储char,utf8常见
5.类模版只能显示实例化 vector<int> v1;
6.输入
char s[1000];
scanf("%[^\n]", s);
scanf("%[^\n]", s)
的作用是读取一行输入,直到遇到换行符(\n
)
%[
表示一个字符集的开始。^\n
表示读取所有字符,直到遇到换行符(\n
)。- 读取的字符将被存储在数组
s
中,直到换行符之前的所有字符。注意事项
输入限制:
scanf
不会自动限制输入的长度,因此如果用户输入的字符超过 999 个,可能会导致缓冲区溢出。为了避免这个问题,可以使用限制符,例如scanf("%999[^\n]", s);
,这样最多读取 999 个字符。换行符处理:当用户按下回车键时,换行符不会被存储在数组
s
中。换行符会被保留在输入流中,可能会影响后续的输入操作。返回值:
scanf
返回成功读取的项数,如果返回值小于预期,可能表示输入错误或到达文件结束。
char s[1000];
scanf("%s", s);
scanf("%s", s);
:这个格式字符串%s
的含义是读取一个字符串,直到遇到空白字符(空格、制表符或换行符)。读取的字符会被存储在数组s
中,字符串将以\0
结束
#include <stdio.h>
int main() {
char s[1000];
printf("请输入一行文本:");
fgets(s, sizeof(s), stdin); // 读取一行输入,包括空格
printf("您输入的内容是:%s\n", s);
return 0;
}
fgets
函数,它可以读取整行输入,包括空格,且可以指定读取的最大字符数
fgets
会读取换行符(\n
),并将其存储在字符串中,除非输入的字符数超过指定的大小。fgets
更安全,因为它可以防止缓冲区溢出
#include <stdio.h>
int main() {
char c;
printf("请输入一个字符:");
c = getchar(); // 读取一个字符
printf("您输入的字符是:%c\n", c);
return 0;
}
getchar
读取的字符包括空格和换行符。- 如果需要在读取字符后清除输入缓冲区,可以使用
while (getchar() != '\n');
来丢弃剩余的输入。
scanf
:适合读取格式化数据,但对字符串的读取有空格限制。fgets
:适合读取整行文本,包括空格,且更安全。getchar
:适合读取单个字符
7.a[i]=*(a+i)
8.1G=1024MB=1024*1024KB=1024*1024*1024Byte