请教这个关于结构体的C++小程序哪里出错了呢

请问这个关于结构体的C++小程序哪里出错了呢?
程序的用意是将数组中的元素首位倒置

#include<iostream>
using namespace std;

typedef struct DATA{
   char num[10];
   int len;
}DATA;

void turnstr(DATA str)
{
   int i=0;
   int len_mid=str.len/2;
   char t;
   while( i==len_mid){
      t=str.num[i];
      str.num[i]=str.num[str.len];
      str.num[str.len]=t;
      i++;
      str.len--;
   }
}
int main()
{
   DATA data={"abcdefg" ,7};
   for(int i=0;i<7;i++){
       cout<<data_num[i];
   }
   cout<<endl;
   turnstr(data);
   for(int i=0;i<7;i++){
      cout<<data_num[i];
   }
   cout<<endl;
   return 0;
}

错误提示是这样的
--------------------Configuration: test - Win32 Debug--------------------
Compiling...
test.cpp
C:\Documents and Settings\Administrator\桌面\program\test\test.cpp(28) : error C2065: 'data_num' : undeclared identifier
C:\Documents and Settings\Administrator\桌面\program\test\test.cpp(28) : error C2109: subscript requires array or pointer type
C:\Documents and Settings\Administrator\桌面\program\test\test.cpp(35) : error C2109: subscript requires array or pointer type
执行 cl.exe 时出错.
test.exe - 1 error(s), 0 warning(s)
C++ C 结构体 C++ C 结构体 struct

------解决方案--------------------
C:\Documents and Settings\Administrator\桌面\program\test\test.cpp(28) : error C2065: 'data_num' : undeclared identifier
应该是cout<<data_num[i];你这手误吧