0

これは Ansi C です。文字列が与えられます。上記の文字列の各単語の先頭を指す文字ポインターの配列を返すメソッドを作成することになっています。Malloc の使用は許可されていませんが、代わりに、入力の最大長は 80 になると言われました。

また、誰かがフォーラムを検索しないことで私を炎上させる前に、私は strtok を使用できません:(

char input[80] = "hello world, please tokenize this string"

メソッドの出力には 6 つの要素が必要です。

output[0] points to the "h",
output[1] points to the "w",

等々。

メソッドはどのように書けばよいですか?

また、最大 110 行のファイルからの入力を処理する同様の方法が必要です。

4

2 に答える 2

1

擬似コード:

boolean isInWord = false
while (*ptr != NUL character) {
   if (!isInWord and isWordCharacter(*ptr)) {
       isInWord = true
       save ptr
   } else if (isInWord and !isWordCharacter(*ptr)) {
       isInWord = false
   }
   increment ptr
}

isWordCharacter文字が単語の一部であるかどうかをチェックします。定義に応じて、アルファベット文字(part-time2語として認識)のみにすることも、含める-part-time1語として認識する)こともできます。

于 2012-06-22T04:26:06.797 に答える
0

これは宿題なので、必要になる可能性のあるものの一部を以下に示します。

char* readPtr = input;
char* wordPtr = input;
int wordCount = 0;
while (*readPtr++ != ' ');
/* Here we have a word from wordPtr to readPtr-1 */
output[wordCount++] = /* something... :)  */

ループでそれが必要になり、次の単語に移動する方法を検討し、入力の終わりを確認する必要があります。

于 2012-06-22T04:34:28.967 に答える