图1转载:https://www.cnblogs.com/zhouquan-1992-04-06/p/6200784.html
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
void trim(char *strIn /*in*/, char *strOut /*in*/);
// 方法一
void trim(char *strIn, char *strOut){
int i, j ;
i = 0;
j = strlen(strIn) - 1;
while(strIn[i] == ' ')
++i;
while(strIn[j] == ' ')
--j;
strncpy(strOut, strIn + i , j - i + 1);
strOut[j - i + 1] = '\0';
}
// 方法二
void trim(char *strIn, char *strOut){
char *start, *end, *temp;//定义去除空格后字符串的头尾指针和遍历指针
temp = strIn;
while (*temp == ' '){
++temp;
}
start = temp; //求得头指针
temp = strIn + strlen(strIn) - 1; //得到原字符串最后一个字符的指针(不是'\0')
printf("%c\n", *temp);
while (*temp == ' '){
--temp;
}
end = temp; //求得尾指针
for(strIn = start; strIn <= end; ){
*strOut++ = *strIn++;
}
*strOut = '\0';
}
//测试
void main(){
char *strIn = " ak kl p ";
char strOut[100];
trim(strIn, strOut);
printf("*%s*\n",strOut);
system("pause");
}
网友评论