私は 3 つの関数を書き込もうとしています: 最初の関数: "read_comp" は char ポインターを初期化し、"readAndRemove" が返す関数を割り当てます。readAndRemove 読み取り行をユーザーから削除し、文字列の前にあるスペースをすべて削除し、先頭にスペースがない文字列へのポインターを返します。次に、「read_comp」は、「readAndRemove」によって取得された文字列を出力します-スペースのないもの。
最後の関数 - 私が問題を抱えている関数... 関数 "findComplex": この関数を実行しようとしているのは、char ポインターを取得し、関数が取得した文字列を出力することだけです。
void read_comp(void)
{
char *str = readAndRemove();
printf("%s\n",str);
findComplex(&str);
}
-------------
char * readAndRemove() /**function to read rest of input and remove first space**/
{
char tempChar[30];
fgets(tempChar,30,stdin);
char* ptr = strtok(tempChar, " ");
return ptr;
}
--------------
void findComplex(char* str)
{
printf("in findComplex:%s\n",str);
}
(最初が無関係だったら申し訳ありませんが、私はすべてをやっている方法に問題があるかもしれないと思っていました...)
だから私はいくつかのことを修正して変更しようとしました: これを変更: define char *str; グローバルパラメータとして、関数を変更します:
void read_comp(void)
{
*str = readAndRemove();
printf("%s\n",str);
findComplex(str);
}
char * readAndRemove() /**function to read rest of input and remove first space**/
{
char tempChar[30];
fgets(tempChar,30,stdin);
char* ptr = strtok(tempChar, " ");
return ptr;
}
void findComplex(char* str)
{
printf("%s\n",str);
printf("in findComplex:%s\n",str);
}