diff --git a/.vs/Algorithm/v16/.suo b/.vs/Algorithm/v16/.suo
index 00d4a18..a6bcb9e 100644
Binary files a/.vs/Algorithm/v16/.suo and b/.vs/Algorithm/v16/.suo differ
diff --git a/code/code.vcxproj b/code/code.vcxproj
index 0f332f7..6986421 100644
--- a/code/code.vcxproj
+++ b/code/code.vcxproj
@@ -140,13 +140,16 @@
+
+
+
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);
+ }
}
};
}