c语言怎么过滤多余的空格

avatar
作者
猴君
阅读量:2

在C语言中,可以使用以下方法来过滤多余的空格:

  1. 使用指针遍历字符串,并用一个新的字符串保存过滤后的结果。
#include <stdio.h> #include <ctype.h> #include <string.h>  void filterSpaces(char *str) {     char *filtered = str; // 用于保存过滤后的字符串     int isSpace = 0; // 标记当前字符是否为空格      // 遍历字符串     while (*str) {         if (isspace(*str)) {             // 如果当前字符为空格             if (!isSpace) {                 // 如果前一个字符不是空格,则将当前字符保存到filtered中                 *filtered++ = *str;                 isSpace = 1; // 设置isSpace为1,表示当前字符为空格             }         } else {             // 如果当前字符不是空格,则将当前字符保存到filtered中             *filtered++ = *str;             isSpace = 0; // 设置isSpace为0,表示当前字符不是空格         }         str++;     }      // 在filtered的末尾添加字符串结束符'\0'     *filtered = '\0'; }  int main() {     char str[100];     printf("请输入字符串:");     scanf("%[^\n]", str);      filterSpaces(str);      printf("过滤后的字符串为:%s\n", str);      return 0; } 
  1. 使用两个指针,一个指向原字符串,一个指向过滤后的字符串,不符合条件的字符直接跳过。
#include <stdio.h> #include <ctype.h> #include <string.h>  void filterSpaces(char *str) {     char *filtered = str; // 用于保存过滤后的字符串      // 遍历字符串     while (*str) {         if (!isspace(*str)) {             // 如果当前字符不是空格,则将当前字符保存到filtered中             *filtered++ = *str;         }         str++;     }      // 在filtered的末尾添加字符串结束符'\0'     *filtered = '\0'; }  int main() {     char str[100];     printf("请输入字符串:");     scanf("%[^\n]", str);      filterSpaces(str);      printf("过滤后的字符串为:%s\n", str);      return 0; } 

以上两种方法都可以过滤掉多余的空格,输出结果为过滤后的字符串。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!