我知道这个问题可能听起来很傻,但我不知何故发现自己陷入困境并需要帮助。我有一个char*
变量char* address="/a/asdasd/c/sdfsdf/adsd";
,我声明了一个 char 指针数组char* store[5];
。我试图address
通过跟踪斜杠(/
)来划分变量中的内容,并尝试store
通过执行以下操作将每个部分存储在 char 指针变量中
char* store[5];
char* address="/a/asdasd/c/sdfsdf/adsd";
int k=0;
int j=0;
char* b=NULL;
for(int i=0;i<5;i++)
{
if(b==0)
{
b=strchr(address,'/');
}
else
{
b=strchr(b,'/');
}
j=b-address;
strncpy(store[i],address+k,j-k);
k=j;
}
但我看到代码strncpy(store[i],address+k,j-k)
中有一个错误。编译器似乎不明白这store[i]
是一个字符指针,而是认为它是一个字符。你能看看我如何解决这个问题吗?
感谢所有的帮助。我已经解决了。解决方案代码如下:
char* address="/a/asdasd/c/sdfsdf/adsd/asfsd";
char store[5][100];
char* b=NULL;
int k=0;
int j=0;
for(int i=0;i<5;i++)
{
if(b==0)
{
b=strchr(address+1,'/');
}
else
{
b=strchr(b+1,'/');
}
j=strlen(address)-strlen(b);
strncpy(store[i],address+k+1,j-k-1);
store[i][j-k-1]='\0';
printf("%s\n",store[i],j-k);
k=j;
}