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;
}