格式化输入:
- 输入带空格的名字字符串,遇到逗号截止
char *name[20];
scanf("%[^,]", name);
%[]
表示扫描[]中的字符集合。例如%[123456789]
意为只读入'1' '2' '3'...
这样在[]内的字符;再例如%[^a-zA-Z]
即只读入大小写字母。
这里^
为位运算符 非,%[^,]
表示遇到','
输入停止(逗号还在缓冲区)
或者使用
cin.get(name, 20, ',');
函数原型是istream & get(char* s, streamsize n, char delim);
第一个参数*s
是个字符指针,第二个参数n
,表示读入n-1个字符,第三个参数delim
表示结束字符(默认参数为\n
换行)
边缘测试:
- 链表题注意头结点可能为NULL;
方法:
- (lc41)原地哈希,对数组本身进行操作。特性:空间复杂度O(1);
- 队列中依次取值,考虑优先队列(堆),堆中可以存数组下标;