私は解析したいグローバル文字列を使用します。解析は複数の関数から行われます。 たとえば、func1()で最初のトークンを抽出し、func2()などで同じグローバル文字列から2番目のトークンを抽出します。
これは可能ですか?私は、最初のものがstrtok(NULL、区切り文字)によって行われた後のトークンの抽出を知っています。そして、strtokはnullに置き換えられた区切り文字の次のバイトにポインタを保存しますが、strtokがどのようにそれは異なる機能で完了したときに区切ります。C strtok複数の関数のグローバル文字列
1
A
答えて
1
が可能です。 strtokは文字列を静的メモリに保存します。
など。
#include <stdio.h>
#include <string.h>
char sentence[] = "The quick brown fox jumps over the lazy dog";
char* sentencep = sentence;
char* func1(void){
char* p = sentencep;
if(sentencep != NULL)
sentencep = NULL;
return strtok(p, " ");
}
char* func2(void){
char* p = sentencep;
if(sentencep != NULL)
sentencep = NULL;
return strtok(p, " ");
}
int main(){
puts(func1());//The
puts(func2());//quick
puts(func2());//brown
puts(func1());//fox
return 0;
}
+0
参照http://research.microsoft.com/en-us/um/redmond/projects/invisible/src/crt/strtok.c.htm – BLUEPIXY
関連する問題
- 1. C++ strtok関数
- 2. 複数のパラメータを持つ複数の複数の文字列
- 3. 空文字列を返す文字列関数C++
- 4. Objective-C文字列関数:文字列を含む
- 5. 関数から複数の文字列を返す
- 6. str.format()関数に複数の文字列を渡す方法
- 7. 複数文字の文字定数エラー
- 8. C#文字列関数からT-SQLスカラー関数
- 9. 文字列分割関数
- 10. PHP関数 - カスタム文字列長関数
- 11. Strtokの問題C(EOF文字?)
- 12. vb.netの複数行の文字列リテラル?
- 13. C++静的ローカル関数とグローバル関数
- 14. C#の文字列をC++のコールバック関数に渡します。
- 15. char型変数を型文字列関数に渡す関数
- 16. 配列文字列の関数エラー
- 17. コール文字列コンストラクタ関数
- 18. 文字列関数間?
- 19. サブストリング、xsltの文字列長関数
- 20. ランダムな文字列関数VB.NETのヘルプ?
- 21. Cの文字列/文字配列から空白を削除する関数
- 22. 文字列配列を使用したソート関数 - Cのエラー
- 23. 複数の文字列の置換(同じ文字列内)
- 24. ナチュラルソートC - "数字と文字を含む文字列の配列"
- 25. 複数のクラスの文字列iOS
- 26. 複数行の文字列のインデント
- 27. Matlabの複数行の文字列リテラル?
- 28. のJava 7 - 複数行の文字列
- 29. C#winformsビジュアルスタジオの接続文字列の複数の場所?
- 30. Pythonは、複数の文字列に文字列を分割
「グローバル文字列」と言ったので、あなたが 'strtok'を使用している文字列が文字列リテラルでないことを確認してください。 –