やってみたよ。面倒だよ。
#include<stdio.h>
#include<stdlib.h>
#include<time.h>

long translate(long value){
struct tm x={0};
time_t y;

x.tm_year=((value/10000)%10000)-1900;
x.tm_mon=((value/100)%100)-1;
x.tm_mday=value%100;
y=mktime(&x);
x=*localtime(&y);
return (x.tm_year+1900)*10000+(x.tm_mon+1)*100+x.tm_mday;
}

int main(void){
char str[]="20080732";

puts(str);
sprintf(str, "%lu", translate(atol(str)));
puts(str);

return 0;
}