zoukankan      html  css  js  c++  java
  • c语言实现去除字符串首尾空格

    字符串内存图如下:

    引入头文件:

     1 #include<stdlib.h>
     2 #include<stdio.h>
     3 #include<string.h>
    

     函数原型:

    1 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] = '';
    }

    实现方法二:

     1 void trim(char *strIn, char *strOut){
     2 
     3     char *start, *end, *temp;//定义去除空格后字符串的头尾指针和遍历指针
     4     
     5     temp = strIn;
     6 
     7     while (*temp == ' '){
     8         ++temp;
     9     }
    10 
    11     start = temp; //求得头指针
    12 
    13     temp = strIn + strlen(strIn) - 1; //得到原字符串最后一个字符的指针(不是'')
    14 
    15     printf("%c
    ", *temp);
    16 
    17     while (*temp == ' '){
    18         --temp;
    19     }
    20 
    21     end = temp; //求得尾指针
    22     
    23 
    24     for(strIn = start; strIn <= end; ){
    25         *strOut++ = *strIn++;
    26     }
    27 
    28     *strOut = '';
    29 }

    测试:

     1 void main(){
     2     char *strIn = "   ak kl  p  ";
     3 
     4     char strOut[100];
     5 
     6     trim(strIn, strOut);
     7 
     8     printf("*%s*
    ",strOut);
     9 
    10     system("pause");
    11 }
  • 相关阅读:
    算法时间复杂度
    C#箴言:定义常量的两种方法
    Java对象池示例
    一种轻量级对象池的设计与实现
    游戏功能逻辑优化
    c#二维数组传递与拷贝
    一个高效的A-star寻路算法(八方向)(
    3DMAX 烘培技术
    Unity3D脚本生命周期
    Unity 组件
  • 原文地址:https://www.cnblogs.com/zhouquan-1992-04-06/p/6200784.html
Copyright © 2011-2022 走看看