刪除字符串中多余空格--c語言實現


題目描述

格式化字符串,刪除單詞與單詞,字母與字母,單詞與字母之間的多余空格
例如:
"fdfeasdsaf vsdrwf c dfefa adqdw"
格式化后為:
"fdfeasdsaf vsdrwf c dfefa adqdw"

代碼部分

#include <stdio.h>
void deblank(char s[]);

int main(void)
{
    char s[100];    //可以改成動態分配方法,更具普遍性
    printf("please input one strings:");
    fgets(s,100,stdin);
    deblank(s);
    return 0;
}

void deblank(char s[])
{
    printf("after deblank:");
    int point=0,next=0;
    while(s[point]!='\0')
    {
        if(s[point]!=' ')
        {
            printf("%c",s[point]);
            point++;
        }
        else
        {
            next=point+1;
            while(s[next]==' ')
                next++;
            printf(" ");
            point=next;
        }
    }
}

講解部分

  1. 上面這種方法只能輸出,無法獲取轉換之后的值,想要實現此功能可以新建一個數組挨個賦值,很簡單實現;
  2. 遍歷整個數組到'\0'處,不用全部遍歷,節省時間;
  3. 用next指向輸出位置,用point遍歷值以及某些操作


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM