この質問はばかげているように聞こえるかもしれませんが、どういうわけか行き詰まり、助けが必要であることに気付きました。char*
変数がchar* address="/a/asdasd/c/sdfsdf/adsd";
あり、char ポインターの配列を宣言しましたchar* store[5];
。address
スラッシュ()をトレースして変数のコンテンツを分割し、次のようにし/
て各部分をcharポインター変数に格納しようとしstore
ています
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)
しかし、コードにエラーがあることがわかりました。コンパイラはそれがcharポインタであることを理解していないようstore[i]
で、むしろcharであると考えています。問題を解決する方法がわかりますか?
すべての助けをありがとう。私はそれを解決しました。ソリューション コードは次のとおりです。
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;
}