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

   2025-02-13 4600
核心提示:在C语言中,可以使用以下方法来过滤多余的空格:使用指针遍历字符串,并用一个新的字符串保存过滤后的结果。#include stdio.h#in

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

使用指针遍历字符串,并用一个新的字符串保存过滤后的结果。
#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;}
使用两个指针,一个指向原字符串,一个指向过滤后的字符串,不符合条件的字符直接跳过。
#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;}

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

 
 
更多>同类维修知识
推荐图文
推荐维修知识
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  网站留言