C語言實現刪除字符串首尾的空格,中間的連續空格只留一個,原來字符串順序不變

#include<stdio.h> #include<string.h> char * deblank(char * str) { char * left = str;//前面的指針,負責賦值 char * right = str;//後面尋找非空格字符的指針 while (*right)//截至字符串完 { if (*right != ' ') { if (left<right) { *left = *right;//賦值 } left++; } if (*right == ' '&&*(right + 1) != ' ')//尋找到下一個單詞時,對left的操作 { *left = ' '; left++; } right++; } *left = '\0'; return *str != ' ' ?str:(str + 1);//防止首單詞之前有空格現象 } int main() { char str[] = " as adadq k "; char *a = deblank(str); int i; for (i = 0; i < strlen(a); i++) { printf("%c",*(a+i));//輸出流 } return 0; }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章