在一段程序中,
有一个字符串由汉字和数字组成的变量,我要查找区别出哪些是汉字,哪些是数字
代码如下
char   PrintChar[MAXNUM]="中华234民族"; 
unsigned char word[3] = { 0 };
for(int   i=0;i<strlen(PrintChar);i++)   
{
if(unsigned(PrintChar[i])>127)
{
word[0] = PrintChar[i++]; 
word[1] = PrintChar[i]; 
word[2] = 0; 
                  //word即为一个汉字
         }
}
现在,我就想问下大家,能不能在每一轮的判断获取字符之后,用位移元素安抚>>改变PringtChar的值
比如第一轮结束后,PringtChar="华234民族";
第二轮结束后,PringtChar="234民族";
.......
等等依次类推

解决方案 »

  1.   

    哪有对一个buffer做>>位移的的。。
    肯定不行
      

  2.   

    char *pCur = PrintChar;
    pCur++; 
      

  3.   

    右移肯定不行使用string类,进行操作,比如这样就依次弹出 华,2,3,4,民,族    CString str = _T("华234民族");
        for(int i=0; i<str.GetLength(); ++i)
        AfxMessageBox(CString(str.GetAt(i)));
      

  4.   

    使用String 这种方法我知道,
    我主要就是想对位移运算符有个认识
    不过还是谢谢skyxie大大
      

  5.   

    是没区别,LZ要的不就是每次从新的地方开始吗?char *pCur = PrintChar; 
    while(NULL != pCur)
    {
        if(unsigned(PrintChar[i])>127)
              ......
        pCur++; 
    }