C语言中不用"zylib.h"且不用字符指针,怎样按某个特定字符(如‘|’)分割用户输入的字符串(长度未知)?

C语言中不用"zylib.h"且不用字符指针,怎样按某个特定字符(如‘|’)分割用户输入的字符串(长度未知)?
不要用指针
不要用指针
不要用指针

不用指针怎么处理长度不确定的返回结果,除非你愿意浪费大量内存。
不用zylib.h,可以用strstr
https://www.cnblogs.com/buffer/archive/2008/08/31/1280414.html

scanf("%s|%s", a,b);

是我想简单了吗

C语言不定长不用指针不好写,c++倒是可以,但实际上底层还是用了指针的

#include<iostream>
#include<string>
#include<vector>
using namespace std;
vector<string> split(const string& str, const char& ch) {
    vector<string> result;
    string temp;
    for (int i = 0; i < str.length(); i++) {
        if (str[i] == ch) {
            result.push_back(temp);
            temp.clear();
            continue;
        }
        temp.push_back(str[i]);
    }
    result.push_back(temp);
    return result;
}
int main(){
    string str = "asd|sdgfs|sdfsdgty|frsdgf|";
    for (const string& str : split(str, '|'))
        cout << str << endl;
    return 0;
}