惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Proofpoint News Feed
V
V2EX
博客园_首页
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Recent Announcements
Recent Announcements
博客园 - 司徒正美
Microsoft Security Blog
Microsoft Security Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Latest news
Latest news
Vercel News
Vercel News
The Register - Security
The Register - Security
T
The Exploit Database - CXSecurity.com
S
Schneier on Security
N
Netflix TechBlog - Medium
WordPress大学
WordPress大学
小众软件
小众软件
L
Lohrmann on Cybersecurity
GbyAI
GbyAI
P
Privacy & Cybersecurity Law Blog
T
Tor Project blog
AWS News Blog
AWS News Blog
美团技术团队
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
K
Kaspersky official blog
B
Blog RSS Feed
G
Google Developers Blog
量子位
大猫的无限游戏
大猫的无限游戏
Google DeepMind News
Google DeepMind News
Scott Helme
Scott Helme
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
I
Intezer
雷峰网
雷峰网
Martin Fowler
Martin Fowler
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Blog — PlanetScale
Blog — PlanetScale
IT之家
IT之家
F
Full Disclosure
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - 【当耐特】
The Hacker News
The Hacker News
U
Unit 42
S
SegmentFault 最新的问题
I
InfoQ
aimingoo的专栏
aimingoo的专栏
Y
Y Combinator Blog
宝玉的分享
宝玉的分享
罗磊的独立博客
Spread Privacy
Spread Privacy
C
CERT Recently Published Vulnerability Notes

博客园 - LeeXiaoLiang

自己写的一个javascript下拉列表类 jquery1.5.1根据元素ID获取元素对象 jquery向.ashx文件post中文乱码问题的解决 【转】通过在RowDataBound事件中把行索引绑定到控件的CommandArgument,然后在RowCommand事件中取出 - LeeXiaoLiang - 博客园 【转】GridView的RowCommand事件中取得行索引 - LeeXiaoLiang - 博客园 【转】GridView 实现服务器端和客户端全选的两种方法 ASP.NET之GridView数据绑定 - LeeXiaoLiang - 博客园 希尔排序的C语言实现(2) 希尔排序的C语言实现(1) 简单插入排序的C语言实现 堆排序的C语言实现 对于堆排序算法的理解 【转】sqlserver中分页方法集锦 【转】高效的MySQL分页 【摘】完全二叉树 【原创】连接字符串数组 【摘】用C实现将数组转换为字符串 【转】浅谈数据库设计技巧 [转]数据库设计范式的理解
【原创】用C实现Trim()函数 - LeeXiaoLiang - 博客园
LeeXiaoLiang · 2010-07-29 · via 博客园 - LeeXiaoLiang

测试代码如下:

#include <stdio.h>

#include <stdlib.h>char * Trim(char *str);
int main(int argc, char *argv[])
{
 
char str1[]="      ";
 
char str2[]="\0";
 
char str3[]="   abc   def   ghi   ";

  Trim(str1);
  printf(

"[%s]\n",str1);
  
  Trim(str2);
  printf(
"[%s]\n",str2);
 
  Trim(str3);
  printf(
"[%s]\n",str3);
 
  system(
"PAUSE");   
 
return 0;
}
/*
令字符指针变量t指向字符串的最后一个字符,
若t的值为空格且t的地址大于s的地址,则将t所处地址的值置为字符串结束,
然后令t的地址继续减小;
令字符指针变量f指向字符串第一个非空格处,将f以后的字符前移;
*/
void Trim(char *s)
{  
   
char *t = s + strlen(s) - 1;
   
char *f=s;
   
int iTemp=0;
   
   
while (isspace(*t) || isspace(*f))
    {  
       
if(t >= s && isspace(*t))
        {
          
*t = '\0';
          
--t;
        }
       
if(f <= t && isspace(*f)) f++;
    }
while (f <= t) 
    {
       
*(s+iTemp)=(*f);
       
++iTemp;
       
++f;
    }
   
*(s+iTemp)='\0';
}

该程序的测试环境:

WinXPSP2,Dev C++ 4.9.9.2