Пример #1
0
int main(int argc, char *[])
{
	char srcStr[] = {"aaabaaaab"};
	XString mainStr;
	mainStr.ch = NULL;
	mainStr.length = 0;
	
	char desStr[] = {"aaaab"};
	XString subStr;
	subStr.ch = NULL;
	subStr.length = 0;

	char repStr[] = {"cd"};
	XString rep;
	rep.ch = NULL;
	rep.length = 0;

	strAssign(mainStr, srcStr);
	strAssign(subStr, desStr);
	strAssign(rep, repStr);
	printf("mainStr len: %d, mainStr: %s\n", mainStr.length, mainStr.ch);
	printf("subStr len: %d, subStr: %s\n", subStr.length, subStr.ch);
	printf("rep len: %d, rep: %s\n", rep.length, rep.ch);

	int index = indexStr(mainStr, subStr, 0);
	printf("index: %d\n", index);

	strReplace(mainStr, subStr, rep);

	printf("new len: %d, new mainStr: %s\n", mainStr.length, mainStr.ch);

	return 0;
}
Пример #2
0
int main(int argc, char* argv[])
{
    if (2 != argc) {
        printf("arg[1] = inputFileName\n");
        return -1;
    }

    char* inputFileName = argv[1];
    FILE* infp;
    FILE* outfp;

    // 入力ファイル
    infp = fopen(inputFileName, "r");
    if (!infp) {
        printf("file not open.\n");
        return -1;
    }

    // 入力
    // X, Y
    int maxX = 0;
    int maxY = 0;
    fscanf(infp, "%d,%d", &maxX, &maxY);
    printf("(X, Y) = (%d, %d)\n", maxX, maxY);

    // 領域確保
    int** data = new int*[maxX+1];
    for (int i = 0; i <= maxX; ++i) {
        data[i] = new int[maxY+1];
    }

    // 初期化
    for (int i = 0; i <= maxX; ++i) {
        for (int j = 0; j <= maxY; ++j) {
            data[i][j] = 1;
        }
    }

    // Num of Blocked
    int numOfBlocked = 0;
    fscanf(infp, "%d", &numOfBlocked);
    printf("numOfBlocked = %d\n", numOfBlocked);

    // Blocked point
    for (int i = 0; i < numOfBlocked; ++i) {
        int tmpX = 0;
        int tmpY = 0;
        fscanf(infp, "%d,%d", &tmpX, &tmpY);
        data[tmpX][tmpY] = 0;
    }
    fclose(infp); // 入力ファイル

    for (int i = 0; i <= maxX; ++i) {
        for (int j = 0; j <= maxY; ++j) {
            printf("%d ", data[i][j]);
        }
        printf("\n");
    }

    RouteSearch* routeSearch = new RouteSearch(data, maxX, maxY);

    timeval startTime;     // 開始時刻
    timeval endTime;       // 終了時刻

    // 時間計測開始
    gettimeofday(&startTime, NULL);

    int result =  routeSearch->calc();
//printf("result = %d\n", result);

    // 時間計測終了
    gettimeofday(&endTime, NULL);
    double timeDiff = static_cast<double>(endTime.tv_sec  - startTime.tv_sec);
    double usecDiff = static_cast<double>(endTime.tv_usec - startTime.tv_usec);
    timeDiff += (usecDiff/1000000.0);

    delete routeSearch;

    // 出力ファイル
    std::string inputPath(inputFileName);
    int l = inputPath.length();
    std::string outputFileName(inputPath.substr(l-6));
    std::string indexStr(inputPath.substr(l-2));

    outfp = fopen(outputFileName.c_str(), "w");
    if (!outfp) {
        printf("file not open.");
        return -1;
    }

    fprintf(outfp, "Case #%s: %4d  %.3f[msec]\n", indexStr.c_str(), result, timeDiff*1000.0);
    printf("Case #%s: %4d  %.3f[msec]\n", indexStr.c_str(), result, timeDiff*1000.0);

    // 解放
    for (int i = 0; i <= maxX; ++i) {
        delete[] data[i];
    }
    delete[] data;


    return 0;
}
Пример #3
0
inline std::string orIndex(Sym sym, IVocabulary const* pVoc) {
  return pVoc ? str(sym, pVoc) : indexStr(sym);
}
Пример #4
0
inline std::string typedIndexStr(Sym sym) {
  return sym.getTypeNameShort() + indexStr(sym);
}