问题描述
- 编程题,要求用c++语言解答
-
假设我们已有一个函数,
int recv(char* buf, int len);
这个函数要求你准备一个 buffer,并告诉这个函数这个 buffer 有多长(len),这个函数就会在 buffer 里填上一些字符,并返回字符的个数(返回值永远 > 0 )。
请写出这样一个函数,
char* read_line() {
// ??? 你要写的代码
}
这个函数不需要任何参数,内部是靠调用 recv() 来拿到一些字符,然后要搜索回车字符 n,找到后返回之前的字符,比如,
如果 recv() 拿到 "123n45n678",那第一次调用 read_line(),需要返回 "123"
但是请注意,第二次调用时,要返回 "45" (第二行字符窜)
第三次调用时,"678" 还没用掉,可是因为 678 之后没有 n,所以你要继续调用 recv(),拿到更多字符,
假如 recv() 返回 "abc",你有了 "678abc",可是因为 abc 之后没有 n,所以你要继续调用 recv(),拿到更多字符
假如 recv() 返回 "den",你有了 "678abcden", 因为看到了 n,所以你可以直接返回 "678abcde" 了。
解决方案
这是哪个公司笔试题吗???????
时间: 2024-10-27 15:08:42