如題,如何將一段字串分割成任意段子字串并輸出??
例如: abcd 分成兩段有 a bcd 、 ab cd 、 abc d
對于很長的字串,需要分成很多段怎么做? 懇請大佬們解答!
uj5u.com熱心網友回復:
回溯演算法暴力列舉。uj5u.com熱心網友回復:
二進制做切割點比如 abcd
有3個切割點 用3bit二進制表示
從0回圈到8
把每個數轉換為二進制
比如5 轉換為 101
1表示切割
0表示不切割
101 切割結果是
a bc d
以此類推
uj5u.com熱心網友回復:
c++檔案操作,把字串放進檔案,很長分多段也能分uj5u.com熱心網友回復:
排列組合問題#define SIZE 20
void split(char *s, char (*c)[SIZE], int pos, int num) {
int len = (int)strlen(s);
if (num==1) {
for (int i=0; i<pos; i++) {
printf("%s ", (char*)(c+i));
}
printf("%s\n", s);
return;
} else if (strlen(s)<=1) {
return;
}
for (int i=1; i<len; i++) {
memset((char*)(c+pos), '\0', SIZE*sizeof(char));
memcpy((char*)(c+pos), s, i);
split(s+i, c, pos+1, num-1);
}
}
int main(int argc, const char * argv[]) {
char s[SIZE] = {"abcde"};
int len = (int)strlen(s);
for (int i=2; i<len; i++) {
char (*c)[SIZE] = (char(*)[SIZE])malloc(sizeof(char[SIZE])*i);
split(s, c, 0, i);
free(c);
}
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/132823.html
標籤:C++ 語言
上一篇:visual stdio2019
