我知道这个问题可能听起来很愚蠢,但我不知何故发现自己卡住了,需要帮助。我有一个char*
变量char* address="https://stackoverflow.com/a/asdasd/c/sdfsdf/adsd";
并且我声明了一个char指针数组char* store[5];
。我试图通过跟踪斜杠(/
)在可变address
内容划分,并试图通过执行以下操作在char指针数组中存储字符串的错误
char* store[5];
char* address="https://stackoverflow.com/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;
}
在字符指针变量store
各部分储存,但我看到,在代码strncpy(store[i],address+k,j-k)
有一个错误。编译器似乎不明白,store[i]
是一个字符指针,它宁可认为它是一个字符。你能看到我能如何解决这个问题吗?
感谢您的帮助。我解决了它。解决方案的代码如下:
char* address="https://stackoverflow.com/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;
}
应该有一个'int b = 0;'某处?那么'a'呢? 'store'? – Levon
不,应该有char * b = NULL。我编辑它。谢谢。 –
还有两个未申报的变量.. – Levon