私はCで全く初心者です。 文字列(char配列)を分割する簡単なC関数を実行しようとしています。null終端文字ポインタ
配列内の文字配列を終了する方法がわからないため、次のコードは正しく機能しません。 functionで渡されたポインタをcharにする必要があります。分割する元の定数char配列を含むものとそれ以外のポインタは、それぞれの分割部分を別々のchar配列に格納する多次元配列です。
私は明らかにCの経験が不足しているため、多くのハスルが発生しました。
私はこの機能では達成できないと思うのは、個々の配列を '\ 0'で終了することだと思います。
void splitNameCode(char *code, char *output);
void splitNameCode(char *code, char *output){
int OS = 0; //output string number
int loop;
size_t s = 1;
for (loop = 0; code[loop]; loop++){
if (code[loop] == ':'){
output[OS] = '\0'; // I want to terminate each array in the array
OS ++;
}else {
if (!output[OS]) {
strncpy(&output[OS], &code[loop], s);
}else {
strncat(&output[OS], &code[loop], s);
}
}
}
}
int main (int argc, const char * argv[]) {
char output[3][15];
char str[] = "andy:james:john:amy";
splitNameCode(str, *output);
for (int loop = 0; loop<4; loop++) {
printf("%s\n", output[loop]);
}
return 0;
}
'output'は多次元配列、つまり文字列の配列であるといえます。しかし、そうであれば、それは 'char ** 'でなければなりません。この関数のシグネチャを与えられたか、それを構築するのに助けが必要なのでしょうか? –
私はおそらくそれを構築するのに役立つ必要があります。私はCでよく知られていません。私はchar **を使用しようとしましたが、それはもっと悪くなりました。私はポインタについての少しの手がかりを持っていますが、私はまだビットとボブが欠けています。 – sumofighter666