首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

Labwindows/CVI中的fets()函数的疑点

2014-01-15 
Labwindows/CVI中的fets()函数的疑问各位大侠好,小弟最近在学习Labwindows/CVI虚拟仪器开发软件,由于C语言

Labwindows/CVI中的fets()函数的疑问
各位大侠好,小弟最近在学习Labwindows/CVI虚拟仪器开发软件,由于C语言基础不好,在阅读公司设备里面程序时,遇到下面有一段程序有所疑问:
 
char*sStr是通过fgets(sStr, 255, pF)函数得到的linebuffer里面指向数组的指针,想了解 下面这个void函数有什么作用?是清空缓存吗?这个void函数算法有点看不懂(第一个while循环什么时候终止?当i>0的时候,if里面的while循环是起什么作用?)由于小弟C语言基础不好,望高手能够逐行点拨一下这个函数的算法。万分感谢!!!
 
void remove_front_space(char *sStr)
 {
         int  i = 0, j = 0;
         
        while ( sStr[i] && sStr[i] == ' ' )  i++;
         if ( i > 0 )
         {
                 while ( sStr[i] )
                 {
                         sStr[j] = sStr[i];
                         i++;
                         j++;
                 }
                 sStr[j] = 0;
         }
 }
 
[解决办法]

void remove_front_space(char *sStr)//删除前导空格
{
        int  i = 0, j = 0;

       while ( sStr[i] && sStr[i] == ' ' )  i++;//第i个字符不是0且是空格,i逐字往后挪。其实可简写为while (sStr[i] == ' ' )  i++;
        if ( i > 0 )//前i个字符都是空格
        {
                while ( sStr[i] )//第i个字符不是0循环(即直到字符串末尾逐字循环)
                {
                        sStr[j] = sStr[i];//将第i个字符赋值给第j个字符()
                        i++;
                        j++;
                }
                sStr[j] = 0;//在前移的字符串的最后补0,作为去掉前导空格后新字符串的结束符
        }
}

热点排行