// CStringByteStrings.cpp : このファイルには 'main' 関数が含まれています。プログラム実行の開始と終了がそこで行われます。 // #include #include #include // 文字列strの先頭からlengthバイトを取り出す char* LeftB(char* str, size_t length) { char* result = (char*)malloc(length + 1); if (result != NULL && str != NULL) { memcpy(result, str, length); result[length] = '\0'; } return result; } // 文字列strのoffsetバイト目からlengthバイトを取り出す char* MidB(char* str, size_t offset, size_t length) { char* result = (char*)malloc(length + 1); if (result != NULL && str + offset != NULL) { memcpy(result, str + offset, length); result[length] = '\0'; } return result; } // 文字列strの末尾からlengthバイトを取り出す char* RightB(char* str, size_t length) { size_t len = strlen(str); char* result = (char*)malloc(length + 1); if (result != NULL && str + len - length != NULL) { memcpy(result, str + len - length, length); result[length] = '\0'; } return result; } // テスト用の関数 void test_string_operations() { char str[] = "あいうえお"; char* left = LeftB(str, 6); char* mid = MidB(str, 3, 4); char* right = RightB(str, 6); printf("LeftB: %s\n", left); printf("MidB: %s\n", mid); printf("RightB: %s\n", right); free(left); free(mid); free(right); } int main() { test_string_operations(); return 0; } // プログラムの実行: Ctrl + F5 または [デバッグ] > [デバッグなしで開始] メニュー // プログラムのデバッグ: F5 または [デバッグ] > [デバッグの開始] メニュー // 作業を開始するためのヒント: // 1. ソリューション エクスプローラー ウィンドウを使用してファイルを追加/管理します // 2. チーム エクスプローラー ウィンドウを使用してソース管理に接続します // 3. 出力ウィンドウを使用して、ビルド出力とその他のメッセージを表示します // 4. エラー一覧ウィンドウを使用してエラーを表示します // 5. [プロジェクト] > [新しい項目の追加] と移動して新しいコード ファイルを作成するか、[プロジェクト] > [既存の項目の追加] と移動して既存のコード ファイルをプロジェクトに追加します // 6. 後ほどこのプロジェクトを再び開く場合、[ファイル] > [開く] > [プロジェクト] と移動して .sln ファイルを選択します