に入力を渡すのにstrncpy(justLine, buf, charsToWrite)
を使用しています。今私はこのことから最初の言葉を得たいと思います。fgetsからの最初の単語を取得
私はこのような何かを管理:
int spaceIndex = strchr(input, ' ');
char firstWord[spaceIndex];
strncpy(firstWord, input, spaceIndex-1);
firstWord[spaceIndex] = '\0';
はUnfortunellyこれは正しく動作していません。あなたはなにか考えはありますか?
また、strtok
を使用してみましたが、input
で台無しです。あなたのコードは、ほぼ正しい、あなただけの'\0'
ターミネータは、あなたがそれを割り当て、あなたがstrncpy
を呼び出すとき文字列の一部であることを覚えていませんされて
'strchr'の戻り値の型は' int'ではなく 'char *'です。 – BLUEPIXY
正常に動作していないとはどういう意味ですか? – Lutopia
'strcspn'を以下のように使います:' size_t len = strcspn(input、 ""); char firstWord [len + 1]; strncpy(firstWord、input、len); firstWord [len] = '\ 0'; ' – BLUEPIXY