取出列号和行号,将(列号-1)转换成26进制,每位加'A',与行号结合即可。例如R5C255,列号是255,转换成26进制即(9)(20),'A'+9='I','A'+20'='U',
所以R5C255转换为IU5
所以R5C255转换为IU5
2013-04-14 22:09
程序代码:
// Excel表格中的RC地址转换.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <stdio.h>
#define N 100
void InputRC(int *a,int *b,int n);
int _tmain(int argc, _TCHAR* argv[])
{
int i,n,a[N],b[N];
printf("请输入行数n(n<=100):\n");
scanf("%d",&n);
for(i=0;i<n;i++)
{
InputRC(a,b,i);
}
printf("\n");
printf("转换后的地址:\n");
for(i=0;i<n;i++)
{
if(b[i]<=26)
{
printf("%c",64+b[i]);
}
else
{
printf("%c",b[i]/26+64);
printf("%c",b[i]%26+64);
}
printf("%d",a[i]);
printf("\n");
}
return 0;
}
void InputRC(int *a,int *b,int n)
{
int i,j;
char r,c,e;
scanf("%c%c%d%c%d",&e,&r,&i,&c,&j);
a[n]=i;
b[n]=j;
}
2013-04-30 16:47
程序代码:#include<stdio.h>
void cal(int x)
{
if(x <= 0) return;
cal(--x / 26);
putchar(x % 26 + 'A');
}
int main()
{
int n, r, c;
for(scanf("%d", &n); n--; cal(c), printf("%d\n", r))
scanf(" R%dC%d", &r, &c);
return 0;
}

2013-05-01 09:27
2013-06-09 15:32