charの配列へのポインタを取得し、ユーザーから文字列を読み取り、文字列ではない最初のcharが表示されるまで、文字列の先頭にあるすべてのスペースを削除する関数を作成しようとしました。最後に、先頭にスペースを含まない文字列のコピーを返します。
例えば、
入力abcd
の場合、関数は文字列へのポインタを返す必要がありますabcd
。
入力123 123
の場合、関数は文字列へのポインタを返す必要があります123 123
。
機能を以下に示します。
void read_RemoveSpace(char * str)/**read the rest of string**/
{
char tempRead[30];
fgets(tempRead,30,stdin);
char *ptr = strtok(tempRead, " "); /**remove spaces between command and other data**/
strcpy(str,ptr); /**copy the new string without the spaces.**/
}
しかし、何らかの理由で関数strtok()
が期待どおりに機能していません。
入力の場合:
123 456
この関数は、スペースを含まない最初の部分のみを返しますが、文字列の残りの部分は返しません。つまり、
123
助言がありますか?