Я хочу обработать массив строк Arg [10] [50], используя функцию strtoArg (),
Должно быть возвращено два значения, одно из которых является переменной 'ArgNo', которая является Numbers of Arg (будет передаваться по значению), а другое является переменной массива Arguments 'arg' (будет проходить по ссылке).
Помогите мне решить эту проблему, как я могу получить правильные значения Arg, возвращаемые из функции.
Заранее спасибо.
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
#define IN
#define OUT
int strtoArg (IN char* instr, OUT char &arg)
{
char *pch,temp[10][50];
int ArgNo=0,j;
pch = strtok (instr," -");
while (pch != NULL){
strcpy((char*)(temp[ArgNo]),pch);
arg = &temp[ArgNo];
pch = strtok (NULL, " -");
ArgNo++;
}
return ArgNo;
}
int main()
{
char Instr[50],Arg[10][50];
int ArgNum,i;
gets(Instr);
ArgNum = strtoArg(Instr,*Arg);
for(i=1; i<ArgNum; ++i)
printf("%s",Arg[i]);
return 0;
}
Я пытаюсь пойти по этому пути,
int strtoArg (IN char* instr, OUT char* arg)
{
char *pch;
int ArgNo=0,j;
pch = strtok (instr," -");
while (pch != NULL){
strcpy((char*)arg[ArgNo],pch);
pch = strtok (NULL, " -");
ArgNo++;
}
return ArgNo;
}
int main()
{
char Instr[50],Arg[10][50];
int ArgNum,i;
gets(Instr);
ArgNum = strtoArg(Instr,*Arg);
printf("here");
for(i=1; i<ArgNum; ++i)
printf("%s",Arg[i]);
return 0;
}
Это удалить ошибку, но создать ошибку сегментации.
Я на правильном пути?