删除字符串多余空格
/** removeTheDuplicateSpace.c** Created on: 2013-3-17* Author: ken*/
#include<stdio.h>
#include<string.h>
#define NUL '\0'void deblank( char string[])
{char dst[64];int i = 0,flag = 0;//控制空格字符是否輸出int dst_index=0;while (string[i] != '\0' ){ if(string[i] !=' ')// 若不是空格 則復制到輸出數(shù)組dst中,將flag置1{ flag = 1;dst[dst_index++]= string[i];}else{
// 當遇到的字符是空格的時候,將不將這個空格加入到目標數(shù)組中,需要判斷這個字符的前一個字符是非空字符或者空字符if(flag)// flag=1 說明前一字符為非空格字符{ dst[dst_index++] =' ';// 復制一個空格字符flag = 0;}}i++;}dst[dst_index] = '\0';//以'\0'結束字符串strcpy(string,dst);// 復制 返回string
}void deblank( char string[])
{//理解的竅門,雖然用的是同一個數(shù)組,但是dst將原來的數(shù)組進行了修改char *dst;dst = string;int i = 0,flag = 0;//控制空格字符是否輸出while (string[i] != '\0' ){ if(string[i] !=' ')// 若不是空格 則復制到輸出數(shù)組dst中,將flag置1{ flag = 1;*dst++= string[i];}else{
// 當遇到的字符是空格的時候,將不將這個空格加入到目標數(shù)組中,需要判斷這個字符的前一個字符是非空字符或者空字符if(flag)// flag=1 說明前一字符為非空格字符{ *dst++ =' ';// 復制一個空格字符flag = 0;}}i++;}*dst = '\0';//以'\0'結束字符串
}int main() {char str[] = { "I love you!" };deblank(str);printf("\n%s", str);return 0;
}
轉(zhuǎn)載于:https://my.oschina.net/liangzhenghui/blog/114345
總結
- 上一篇: 阿里研究院:2020阿里农产品电商报告
- 下一篇: android wear 2 手表,An