0

私は6つのconst文字列(それぞれ5文字)を持っています

(これらの 6 単語のうち) いくつかの単語のストリームを取得します。

各単語から何回出現したかを数えたいと思います。

C でどのように実装できますか?

私が試してみました:

  char searchEngineNames[6][5] = { "waze_", "faceb", "fours", "googl",
        "fueli", "yello" };

    static void foo(const char* res_name, int success, void *context, char *last_modified) {
        if (success){
                for (int i=0; i<6; i++)
                {
                    char substringFiveChars[6];

                    strncpy(substringFiveChars, res_name, 5);

                            char substringFiveChars[6]; 

                            substringFiveChars[5] = 0;

                    if (strcmp(searchEngineNames[i],substringFiveChars) == 0)
                    {
                    ... 
                    }
    ..
                }

たとえば、このストリームの場合:

"wooo_"、"wooo_"、"faceb"、"wooo_"、"google"

私は最終的に取得します:

"wooo_" 3 times

"faceb" 1 times 

"google" 1 times 

"fours" 0 times

"fuelil" 0 times

"yello" 0 times
4

1 に答える 1

0

1 つではなく 2 つの配列を使用します。

char searchEngineNames[6][5] = { "wooo_", "faceb", "fours", "google",
        "fuelil", "yello" };

int searchEngineCounts[6] = {0,0,0,0,0,0};



static void foo(const char* res_name,
        int success, void *context, char *last_modified) {
    if (success) {

        int i = 0;
        for (i; i < 6; i++) {
            char substringFiveChars[6];

            strncpy(substringFiveChars, res_name+7, 5);

            substringFiveChars[5] = 0;

            if (strcmp(searchEngineNames[i], substringFiveChars) == 0) {
                searchEngineCounts[i]++;

                if (searchEngineCounts[i] < 3) {

...
                }
            }
        }

    }
}
于 2013-07-08T09:28:13.143 に答える