From 2cf68915992727d5ba4158ae7ffb53927f27c432 Mon Sep 17 00:00:00 2001 From: linyongji Date: Wed, 3 Feb 2021 14:21:07 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=86=E6=94=AF2=E5=AE=8C=E6=88=90,=E6=8F=90?= =?UTF-8?q?=E4=BA=A4=E5=AE=8C=E6=88=90=E7=9A=84=E9=A2=98=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vs/Algorithm/v16/.suo | Bin 46080 -> 51200 bytes code/code.vcxproj | 3 ++ code/code.vcxproj.filters | 9 ++++++ code/config/2_ExcelSheetColumnTiTle.ini | 36 ++++++++++++++++++++++++ code/include/2_ExcelSheetColumnTitle.h | 6 ++++ code/src/2_ExcelSheetColumnTitle.cpp | 18 ++++++++++++ test/pch.h | 1 + test/test.cpp | 18 +++++++++--- 8 files changed, 87 insertions(+), 4 deletions(-) create mode 100644 code/config/2_ExcelSheetColumnTiTle.ini create mode 100644 code/include/2_ExcelSheetColumnTitle.h create mode 100644 code/src/2_ExcelSheetColumnTitle.cpp diff --git a/.vs/Algorithm/v16/.suo b/.vs/Algorithm/v16/.suo index 00d4a184e14981837d189d8e4549c46ad1f9573b..a6bcb9e3f63d296e9b7f4cdd0b3496a98b0e55fa 100644 GIT binary patch delta 6795 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 + + + diff --git a/code/code.vcxproj.filters b/code/code.vcxproj.filters index 619842e..279cc21 100644 --- a/code/code.vcxproj.filters +++ b/code/code.vcxproj.filters @@ -18,6 +18,9 @@ 头文件 + + 头文件 + @@ -26,10 +29,16 @@ 源文件 + + 源文件 + 资源文件 + + 资源文件 + \ No newline at end of file diff --git a/code/config/2_ExcelSheetColumnTiTle.ini b/code/config/2_ExcelSheetColumnTiTle.ini new file mode 100644 index 0000000..6c9611f --- /dev/null +++ b/code/config/2_ExcelSheetColumnTiTle.ini @@ -0,0 +1,36 @@ +[Test1] +Na=1 +nExpect=A +[Test2] +Na=2 +nExpect=B +[Test3] +Na=26 +nExpect=Z +[Test4] +Na=1 +nExpect=A +[Test5] +Na=27 +nExpect=AA +[Test6] +Na=52 +nExpect=AZ +[Test7] +Na=53 +nExpect=BA +[Test8] +Na=100 +nExpect=CV +[Test9] +Na= +nExpect= +[Test10] +Na=5000 +nExpect=GJH +[Test11] +Na=10000 +nExpect=NTP +[Test12] +Na=2147483647 +nExpect=FXSHRXW \ No newline at end of file diff --git a/code/include/2_ExcelSheetColumnTitle.h b/code/include/2_ExcelSheetColumnTitle.h new file mode 100644 index 0000000..a1ff4b7 --- /dev/null +++ b/code/include/2_ExcelSheetColumnTitle.h @@ -0,0 +1,6 @@ +#pragma once +#include +#include +#include + +char* ExcelSheetColumnTitle(int n); \ No newline at end of file diff --git a/code/src/2_ExcelSheetColumnTitle.cpp b/code/src/2_ExcelSheetColumnTitle.cpp new file mode 100644 index 0000000..b9b990d --- /dev/null +++ b/code/src/2_ExcelSheetColumnTitle.cpp @@ -0,0 +1,18 @@ +#include "../include/2_ExcelSheetColumnTitle.h" +//Ŀһ Excel ӦƣExcelҲУ򷵻"" +//˼·1.nȡ࣬ѵõ'A'ӺǰŵַУn = n/26,ѭֱnΪ0 +// 2.ַȲ7ָƣȥǰĿλ +char* ExcelSheetColumnTitle(int n) +{ //intʹ0Ϊ0~21474836477A~Zĸʾintᳬ267η + char* ret = (char*)malloc(sizeof(char) * 8);//8ֽڵĿռ䣬һֽڴ\0־ + int i = 7; //ַеÿַ + ret[7] = '\0'; //β\0 + while (n) { //n0ʱ + n -= 1; //nһΪnǴַ'A'ʼӵ + ret[i-1] = n % 26 + 'A'; //Ӻǰֵһֵһ + n /= 26; + i--; //һֵַ + } + return ret + i; //ȥǰǰַǰûַָ + free(ret); +} \ No newline at end of file diff --git a/test/pch.h b/test/pch.h index d0edafb..a50326e 100644 --- a/test/pch.h +++ b/test/pch.h @@ -15,6 +15,7 @@ #include"../code/include/1_ContainsNearbyDuplicate.h" +#include"../code/include/2_ExcelSheetColumnTitle.h" int CalcCount(int n, char(*str)[10], const char* FileName); diff --git a/test/test.cpp b/test/test.cpp index a5c62e4..55aaa7f 100644 --- a/test/test.cpp +++ b/test/test.cpp @@ -3,6 +3,9 @@ using namespace Microsoft::VisualStudio::CppUnitTestFramework; #define FileName_1 "../code/config/1_ContainsNearbyDuplicate.ini" +#define FileName_2 "../code/config/2_ExcelSheetColumnTiTle.ini" + + namespace test1 { TEST_CLASS(UnitTest_1) @@ -27,12 +30,19 @@ namespace test1 } namespace test2 { - TEST_CLASS(test) + TEST_CLASS(UnitTest_1) { - public: - - TEST_METHOD(TestMethod1) + TEST_METHOD(TestMethode1) { + char Section_Name[100][10] = { 0 }; + int Section_Count = CalcCount(100, Section_Name, FileName_2); + CString Na, nExpect; + for (int i = 0; i < Section_Count; i++) { + GetPrivateProfileString(Section_Name[i], "Na", " ", Na.GetBuffer(20), 20, FileName_2); + GetPrivateProfileString(Section_Name[i], "nExpect", " ", nExpect.GetBuffer(100), 100, FileName_2); + char* nReal = ExcelSheetColumnTitle(_ttoi(Na)); + Assert::AreEqual(nReal, nExpect); + } } }; }