1. ホーム
  2. c++

[解決済み] ポインタと整数の比較に関する問題 C++.

2022-02-05 15:46:49

質問

というエラーメッセージが表示されることがあります。

[エラー] ISO C++ はポインタと整数の比較を禁止しています [-fpermissive] 。

で、修正方法がわかりません。

同じ問題を持つ人をstackoverflowで検索してみましたが、これしか出てきませんでした。 c++ コンパイルエラー。ISO C++はポインタと整数の比較を禁止しています。 というもので、私の質問の答えになっていません。さらに私を混乱させたのは、エラーはHEREコメントで示された行にあり、それはif文ですが、私はcondition部分に整数を見ません。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
using namespace std;

int main() {
    char in[100];
    gets(in);
    int len = strlen(in);
    std::string s(in);
    int count = 0;
    for (int i = 0; i < len; i++) {
        if (s.at(i) == " ") {        // <-- HERE
            count += 1;
        }
    }

    cout << count;
}

入力がHello Worldの場合、出力は以下のようになると考えています。 1 が、何も出力されない。

どのように解決するのですか?

ifステートメントを変更する

if (s.at(i) == ' ') {
    count += 1;
}

から s.at(i) はchar&を返します。 " " は文字列、そして ' ' は文字です。