関数strtoArg()を使用して文字列Arg [10] [50]の配列を進めたいと思います。 2つの値を返すはずです。変数 'ArgNo'はArg (値渡し)& other args配列変数 '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;
}
、この道を行くしようとしています。 私は正しい道にいるのですか?
C++ ism ... C++にタグする必要がありますか? – ShinTakezou