我在使用以下代码时遇到问题(我不知道 splitString 函数是否有效,因为我在调用它时遇到了段错误)。代码是:
#include <stdio.h>
//
// Split String
//
int splitString(char** ret,char* instr, char* fence,int max) {
char* p;
int count=0;
char* sinstr;
char* cp;
int i=0;
while(i<max) {
cp=ret[i];
p=fence;
sinstr=instr;
while(1) {
if (*p=='\0') {
*cp='\0';
instr=sinstr;
break;
}
if (*p==*sinstr) {
p++;
sinstr++;
continue;
} else {
*cp=*instr;
cp++;
instr++;
break;
}
}
i++;
}
*cp='\0';
return count;
}
int main (int argc, char* const argv[]) {
char *strs[128];
char* in="test.txt";
splitString(strs,in,".",2);
printf("fn: %s, ext: %s\n",strs[0],strs[1]);
}
splitString 函数调用和 printf 都会出现段错误(如果我注释掉对 splitString 的调用,printf 会出现错误)。
我要做的是根据子字符串拆分字符串。该函数应该返回作为第一个参数传递给函数的数组中的子字符串。我知道我忽略了一些非常明显的东西,但我的 C 技能非常生疏。感谢任何指导。