1

const char*が書いた関数から値を取る変数があります。

この変数をファイルに何度も書き込むと、何も書き込まれません。したがって、空にするか、スペースで埋める必要があります.奇妙なことは、私が書くtxtファイルでは、値があるかどうかにかかわらず、毎回行が変わるということです.なぜですか?関数からの戻り値が持っています?

a の値const char *が空かどうかを確認するにはどうすればよいですか、または一般に、char* の値を文字ごとに確認するにはどうすればよいですか?

4

1 に答える 1

2

C / C ++ポインターは、ポインターが指す値の配列として解釈できるため、aの値をチェックする2つの方法はchar*、索引演算子を適用するか、ポインター演算を使用することです。あなたはこれを行うことができます:

const char *p = myFunctionReturningConstChar();
for (int i = 0 ; p[i] ; i++) {
    if (p[i] == '\n') printf("New line\n");
}

またはこれ:

const char *p = myFunctionReturningConstChar();
while (*p) {
    if (*p == '\n') printf("New line\n");
    p++;
}

さらに、C ++ライブラリは、C文字列を操作するための複数の関数を提供しますstrlenポインタが空の文字列を指しているかどうかを確認すると役立つ場合があります。

于 2012-07-21T04:13:46.803 に答える